python导⼊模块⽅法_Python导⼊模块的3种⽅法(⾮常详细)
许多初学者经常遇到这样的问题: ⾃定义Python模板后,在其他⽂件中使⽤带有import(或从... import)语句导⼊⽂件时,Python解释器还会出现以下错误:
ModuleNotFoundError: 没有名为“模块名称”的模块
这意味着Python不到此模块名称. 是什么原因造成的?要解决此问题,读者必须⾸先弄清楚Python解释器寻模块⽂件的过程.
通常,在使⽤import语句导⼊模块后,Python将按以下顺序搜索指定的模块⽂件:
上⾯提到的所有⽬录都存储在标准模块sys的sys.path变量中. 通过此变量,我们可以看到指定程序⽂件⽀持搜索的所有⽬录. 换句话说,如果要导⼊的模块未存储在sys.path显⽰的⽬录中,则在导⼊模块并运⾏程序时,Python解释器将引发ModuleNotFoundError(不到模块)异常.
有三种⽅法可以解决“ Python⽆法到指定的模块”的问题,
暂时将模块⽂件存储位置的完整路径添加到sys.path;中. 将模块放在sys.path变量中已经包含的模块加载路径中;设置路径系统环境变量.
但是,在详细介绍这三种⽅法之前,为了便于解释,本节使⽤hello.py定制模块⽂件(D: \ python_module \ hello.py)并说. py程序⽂件(位于桌⾯上的C: \ Users \ mengma \ Desktop \ say.py),其各⾃的代码如下:
#hello.py
def say ():
print("Hello,World!")
amazeui 登录界面#say.py
import hello
hello.say()
显然,hello.py⽂件和say.py⽂件不在同⼀⽬录中. 当您此时运⾏say.py⽂件时,结果为:
回溯(最近通话最近⼀次):
中的⽂件“ C: \ Users \ mengma \ Desktop \ say.py”,第1⾏
导⼊你好
ModuleNotFoundError: 没有名为“ hello”的模块
如您所见,Python解释器抛出ModuleNotFoundError异常. 接下来,使⽤以上三种⽅法解决此问题.
导⼊模块⽅法1: 临时添加模块全路径模块⽂件的存储位置,可以将其临时添加到sys.path变量,即添加D: \ python_module(hello.py所在的⽬录) )添加到sys.path,例如,在.py的开头添加以下代码:
import sys
sys.path.append(D:\\python_module)
注意: 在添加完整路径时,路径中的'\'需要⽤\进⾏转义,否则将导致语法错误. 再次运⾏say.py⽂件,结果如下:
你好,世界!
您可以看到该程序成功运⾏. 在此基础上,我们在say.py⽂件中输出sys.path变量的值,我们将得到以下结果:
['C: \\ Users \\ mengma \\ Desktop','D: \\ python3.6 \\ Lib \\ idlelib','D: \\ python3.6 \\ python36.zip',' D: \\ python3.6 \\ DLLs','D: \\ python3.6 \\ lib','D: \\ python3.6','C: \\ Users \\ mengma \\ AppData \\ Roaming \\ Python \\ Python36 \\ site-packages','D: \\ python3.6 \\ lib \\ site-packages','D: \\ python3.6 \\ lib \\ site-packages \\ win32 ','D: \\
python3.6 \\ lib \\ site-packages \\ win32 \\ lib','D: \\ python3.6 \\ lib \\ site-packages \\ Pythonwin','D: \\
python_module']
在输出信息中,红⾊部分是临时添加的存储路径. 需要注意的是,通过该⽅法添加的⽬录只能在执⾏当前⽂件的窗⼝中有效,⽽在关闭该窗⼝后该⽬录将⽆效.
导⼊模块的第⼆种⽅法: 将模块保存到指定位置. 如果要安装⼀些通⽤模块,例如复杂功能⽀持的模块,矩阵计算⽀持的模块,图形界⾯⽀持的模块等,则这些模块属于Python本⾝. 扩展模块,此模块应直接安装在Python内部,以供所有程序共享,这时您可以使⽤Python的默认模块加载路径.
Python程序的默认模块加载路径保存在sys.path变量中,因此我们⾸先可以查看say.py程序⽂件中sys.path中保存的默认加载路径,然后将sys输出到say. py⽂件.path的值如下:
['C: \\ Users \\ mengma \\ Desktop','D: \\ python3.6 \\ Lib \\ idlelib','D: \\ python3.6 \\ python36.zip',' D: \\ python3.6 \\ DLLs','D: \\ python3.6 \\ lib','D: \\ python3.6','C: \\ Users \\ mengma \\ AppData \\ Roaming \\ Python \\ Python36 \\ site-packages','D: \\ python3.6 \\ lib \\ site-packages','D: \\ python3.6 \\ lib \\ site-packages \\ win32 'python3模
块,'D: \\ python3.6 \\ lib \\ site-packages \\ win32 \\ lib','D: \\ python3.6 \\ lib \\ site-packages \\ Pythonwin']
在以上操作结果中,列出的所有路径均为Python的默认模块加载路径,但⼀般来说,我们默认情况下将Python扩展模块添加到lib \ site-packages路径中,该路径专门⽤于存储Python扩展模块和软件包.
因此,我们可以直接将已编写的hello.py⽂件添加到lib \ site-packages路径,这等效于为Python扩展hello模块,以便任何Python程序都可以使⽤此模块.
完成移动⼯作后,再次运⾏say.py⽂件,可以看到操作成功的结果:
你好,世界!
⽤于导⼊模块的⽅法三: 设置环境变量PYTHONPATH环境变量(称为路径变量)是许多路径的集合. Python解释器将根据路径中包含的路径执⾏搜索python3模块,直到到要加载的指定模块为⽌. 当然,
如果仍然不到,Python将报告ModuleNotFoundError异常.
由于平台不同,设置路径环境变量的设置过程也不相同,因此接下来使⽤最多的三个平台Windows,Linux和Mac OS X将向读者介绍如何设置. 路径环境变量.
在Windows平台上设置环境变量. ⾸先,在桌⾯上到“计算机”(或“我的电脑”),单击⿏标右键,然后单击“属性”. 显⽰“控制⾯板\所有控制⾯板项⽬\系统”窗⼝. 单击窗⼝左栏中的“⾼级系统设置”菜单,然后出现“系统属性”对话框,如图1所⽰.
图1系统属性对话框
如图1所⽰,单击“环境变量”按钮,然后将弹出图2所⽰的对话框:
图2环境变量对话框
如图2所⽰,通过此对话框,您可以完成路径环境变量的设置. 需要注意的是,对话框分为上下两部分,其中“⽤户变量”的上半部分⽤于设置当前⽤户的环境变量,“系统变量”的下半部分⽤于设置环境变量. 整个系统.
在通常情况下,建议您设置⽤户的路径变量,因为此设置仅对当前登录到系统的⽤户有效,如果修改了系统路径变量,则对所有⽤户均有效⽤户.
对于普通⽤户,设置⽤户路径变量和系统路径变量的效果是相同的,但是当Python使⽤路径变量时,它将⾸先根据系统路径变量的路径进⾏搜索,然后按照⽤户路径变量的路径Go到它.
在这⾥,我们选择设置当前⽤户的路径变量. 单击⽤户变量中的“新建”按钮,系统将弹出如图3所⽰的对话框.
图3新的PYTHONPATH环境变量
在“变量名称”(Variable Name)⽂本框中输⼊PYTHONPATH,以指⽰将创建⼀个名为PYTHONPATH的环境变量. 在“变量值”⽂本框中输⼊. ; d: \ python_模块. 请注意,实际上有两条路径(⽤分号;作为分隔符):
然后单击“确定”,并成功设置路径环境变量. 此时,我们只需要将模块⽂件移⾄与导⼊模块的⽂件相同的⽬录,或移⾄d: \ python_ module路径即可成功加载模块.
在Linux上设置环境变量以启动Linux的终端窗⼝,输⼊当前⽤户的主路径,然后在主路径下输⼊以下命令:
java se development kitls-a
此命令将列出当前路径中的所有⽂件,包括隐藏⽂件. Linux平台的环境变量由.bash_profile⽂件设置. 使⽤未格式化的编辑器打开⽂件,然后将PYTHONPATH环境变量添加到⽂件中. 也就是说,将以下⾏添加到⽂件中:
#设置PYTHON PATH环境变量
PYTHONPATH =. : / home / mengma / python_module
Linux和Windows平台不同. 冒号(:)⽤作多个路径之间的定界符,因此上⼀⾏还设置了两个路径,点(. )表⽰当前路径,另⼀个路径为/ home / mengma / python_module(mengma是登录名)在Linux系统上).
设置PYTHONPATH变量的值后,在.bash_profile⽂件的末尾添加⼀条语句以导出PYTHONPATH变量.
#Export PYTHONPATH环境变量
导出PYTHONPATH
再次登录Linux平台,或执⾏以下命令:
source.bash_profile
python在线编辑器python3
这两种⽅法⽤于运⾏⽂件,以使⽂件中设置的PYTHONPATH变量的值⽣效.switch算法
mvc架构图教程成功设置以上环境变量后,只需将先前定义的模块(Python程序)放在与当前正在运⾏的Python程序相同的路径中(或/ home / mengma / python_module路径下),即可成功完成该模块加载.
在Mac OS X上设置环境变量在Mac OS X上设置环境变量与Linux⼤致相同(因为Mac OS X本⾝也是类UNIX系统). 启动Mac OS X的终端窗⼝(命令⾏界⾯),输⼊当前⽤户的主路径,然后在主路径中输⼊以下命令:
ls -a
此命令将列出当前路径中的所有⽂件,包括隐藏⽂件. 也可以通过bash_profile⽂件设置Mac OS X平台的环境变量,使⽤未格式化的编辑器打开⽂件,然后将PYTHONPATH环境变量添加到⽂件中. 也就是说,将以下⾏添加到⽂件中:
#设置PYTHON PATH环境更改磁盘
PYTHONPATH =. : / Users / mengma / python_module
冒号(:)在Mac OS X中也⽤作多个路径之间的分隔符,因此上⼀⾏还设置了两个路径: 点(. )代表当前路径,另⼀个路径是/ Users / mengma / python_module(memgma是Mac OS X上作者的登录名).
设置PYTHONPATH变量的值后,在.bash_profile⽂件的末尾添加⼀条语句以导出PYTHONPATH变量.
sublimetext3自动补全代码#Export PYTHON PATH环境变量
导出PYTHONPATH
再次登录Mac OS X系统,或执⾏以下命令:
source.bash_profile
这两种⽅法⽤于运⾏⽂件,以使⽂件中设置的PYTHONPATH变量的值⽣效.
成功设置上述环境变量后,只需将先前定义的模块(Python程序)放在与当前运⾏的Python程序相同的路径中(或在Users / mengma / python_module路径下),即可成功加载该模块
本⽂来⾃电脑杂谈,转载请注明本⽂⽹址:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。