Python导入模块的3种方式(超级详细)
编程其实并不难,就是用合适的语法告诉计算机,让它帮助完成某个工作。因此计算机能完成的事情,其实都是程序员预先告诉它的。
通常情况下,当使用 import 语句导入模块后,Python 会按照以下顺序查找指定的模块文件:- 在当前目录,即当前执行的程序文件所在目录下查找;
- 到 PYTHONPATH(环境变量)下的每个目录中查找;
- 到 Python 默认的安装目录下查找。
为了让 Python 能找到自定义(或第三方提供) 的模块,可以用以下 3 种方式来告诉它:
- 向 sys.path 中临时添加模块文件存储位置的完整路径;
- 将模块放在 sys.path 变量中已包含的模块加载路径中。
- 设置系统环境变量。
#hello.py def say (): print("Hello,World!") #say.py import hello hello.say()可以看到,hello.py 文件和 say.py 文件并不在同一目录,此时运行 say.py 文件,其运行结果为:
Traceback (most recent call last):
File "C:\Users\mengma\Desktop\say.py", line 1, in <module>
import hello
ModuleNotFoundError: No module named 'hello'
导入模块方式一:临时添加模块完整路径
模块文件的存储位置,可以临时添加到 sys.path 变量中,即向 sys.path 中添加 D:\python_module(hello.py 所在目录),在 say.py 中的开头位置添加如下代码:import sys sys.path.append('D:\\python_module')注意:在添加完整路径中,路径中的 '\' 需要使用 \ 进行转义,否则会导致语法错误。再次运行 say.py 文件,运行结果如下:
Hello,World!
可以看到,程序成功运行。在此基础上,我们在 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 中保存的默认加载路径,向 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']
上面的运行结果中,列出的所有路径都是 Python 默认的模块加载路径,但通常来说,我们默认将 Python 的扩展模块添加在lib\site-packages
路径下,它专门用于存放 Python 的扩展模块和包。所以,我们可以直接将我们已编写好的 hello.py 文件添加到
lib\site-packages
路径下,就相当于为 Python 扩展了一个 hello 模块,这样任何 Python 程序都可使用该模块。移动工作完成之后,再次运行 say.py 文件,可以看到成功运行的结果:
Hello,World!
导入模块方式三:设置环境变量
Python 将会根据 PYTHONPATH 环境变量的值来确定到哪里去加载模块。PYTHONPATH 环境变量的值是多个路径的集合,这样 Python 就会依次搜索 PYTHONPATH 环境变量所指定的多个路径,试图从中找到程序想要加载的模块。下面介绍在不同平台上设置环境变量的方式。
在 Windows 平台上设置环境变量
右击桌面上的“计算机”图标,出现右键菜单;单击“属性”菜单项,系统显示“控制面板\所有控制面板项\系统”窗口,单击该窗口左边栏中的“高级系统设置”链接,出现“系统属性”对话框,如图 1 所示。图 1 系统属性对话框
单击该对话框中“高级” Tab 页中的“环境变量”按钮,将看到如图 2 所示的“环境变量”对话框,通过该对话框可以添加或修改环境变量。
图 2 环境变量对话框
在如图 2 所示的对话框中,上面的“用户变量”部分用于设置当前用户的环境变量,下面的“系统变量”部分用于设置整个系统的环境变量。
一般建议设置“用户变量”即可,因为用户变量只对当前用户有效,而系统变量对所有用户有效。为了减少自己所做的修改对其他人的影响,故设置用户变量。对于当前用户而言,设置用户变量和系统变量的效果大致相同,不过系统变量的路径排在用户变量的路径之前。
单击用户变量中的“新建”按钮, 系统显示如图 3 所示的对话框。
图 3 新建PYTHONPATH环境变量
在“变量名”文本框内输入 PYTHONPATH,表明将要建立名为 PYTHONPATH 的环境变量;在“变量值”文本框内输入
.;d:\python_ module
,这就是该环境变量的值,该值其实包含了两条路径(以 ;分隔):
- 第一条路径为一个点(.),这个点代表当前路径,表明当运行 Python 程序时,Python 总能从当前路径加载模块;
-
第二条路径为
d:\python_ module
,表明当运行 Python 程序时,Python 总能从d:\python_ module
加载模块。
在成功设置了上面的环境变量之后,接下来只要把前面定义的模块(Python 程序)放在与当前所运行 Python 程序相同的路径中(或放在
d:\python_ module
路径下),该模块就能被成功加载了。在 Linux 上设置环境变量
启动 Linux 的终端窗口(命令行界面),进入当前用户的 home 路径下,然后在 home 路径下输入如下命令:ls - a
该命令将列出当前路径下所有的文件,包括隐藏文件。Linux 平台的环境变量是通过 .bash_profile 文件来设置的,使用无格式编辑器打开该文件,在该文件中添加 PYTHONPATH 环境变量。也就是为该文件增加如下一行:
#设置PYTHON PATH 环境变量
PYTHONPATH=.:/home/mengma/python_module
/home/mengma/python_module
(mengma 是在 Linux 系统的登录名)。在完成了 PYTHONPATH 变量值的设置后,在 .bash_profile 文件的最后添加导出 PYTHONPATH 变量的语句。
#导出PYTHONPATH 环境变量
export PYTHONPATH
source.bash_profile
这两种方式都是为了运行该文件,使在文件中设置的 PYTHONPATH 变量值生效。在成功设置了上面的环境变量之后,接下来只要把前面定义的模块(Python 程序)放在与当前所运行 Python 程序相同的路径中(或放在
/home/mengma/python_module
路径下),该模块就能被成功加载了。在Mac OS X 上设置环境变量
在 Mac OS X 上设置环境变量与 Linux 大致相同(因为 Mac OS X 本身也是类 UNIX 系统)。启动 Mac OS X 的终端窗口(命令行界面),进入当前用户的 home 路径下,然后在 home 路径下输入如下命令:ls -a
该命令将列出当前路径下所有的文件,包括隐藏文件。Mac OS X 平台的环境变量也可通过,bash_profile 文件来设置,使用无格式编辑器打开该文件,在该文件中添加 PYTHONPATH 环境变量。也就是为该文件增加如下一行:
#设置PYTHON PATH 环境变盘
PYTHONPATH=.:/Users/mengma/python_module
/Users/mengma/python_module
(memgma 是作者在 Mac OS X 系统的登录名)。在完成了 PYTHONPATH 变量值的设置后,在 .bash_profile 文件的最后添加导出 PYTHONPATH 变量的语句。
#导出PYTHON PATH 环境变量
export PYTHONPATH
source.bash_profile
这两种方式都是为了运行该文件,使在文件中设置的 PYTHONPATH 变量值生效。在成功设置了上面的环境变量之后,接下来只要把前面定义的模块(Python 程序)放在与当前所运行 Python 程序相同的路径中(或放在
Users/mengma/python_module
路径下),该模块就能被成功加载了。所有教程
- socket
- Python基础教程
- C#教程
- MySQL函数
- MySQL
- C语言入门
- C语言专题
- C语言编译器
- C语言编程实例
- GCC编译器
- 数据结构
- C语言项目案例
- C++教程
- OpenCV
- Qt教程
- Unity 3D教程
- UE4
- STL
- Redis
- Android教程
- JavaScript
- PHP
- Mybatis
- Spring Cloud
- Maven
- vi命令
- Spring Boot
- Spring MVC
- Hibernate
- Linux
- Linux命令
- Shell脚本
- Java教程
- 设计模式
- Spring
- Servlet
- Struts2
- Java Swing
- JSP教程
- CSS教程
- TensorFlow
- 区块链
- Go语言教程
- Docker
- 编程笔记
- 资源下载
- 关于我们
- 汇编语言
- 大数据
- 云计算
- VIP视频