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!")

#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的终端窗口,输入当前用户的主路径,然后在主路径下输入以下命令:

ls-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

这两种方法用于运行文件,以使文件中设置的PYTHONPATH变量的值生效.

成功设置以上环境变量后,只需将先前定义的模块(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变量.

#Export PYTHON PATH环境变量

导出PYTHONPATH

再次登录Mac OS X系统,或执行以下命令:

source.bash_profile

这两种方法用于运行文件,以使文件中设置的PYTHONPATH变量的值生效.

成功设置上述环境变量后,只需将先前定义的模块(Python程序)放在与当前运行的Python程序相同的路径中(或在Users / mengma / python_module路径下),即可成功加载该模块

本文来自电脑杂谈,转载请注明本文网址:

http://www.pc-fly.com/a/jisuanjixue/article-241370-1.html

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值