Python导入模块的路径¶
通常情况下, 当使用import语句导入模块后, Python会按照以下的顺序查找指定的模块文件:
- 在当前目录下, 即当前执行的程序文件所在目录下查找;
- 到环境变量
PYTHONPATH定义的路径下去查找;- 到Python默认的安装目录下去查找.
以上所有涉及到的目录, 都保存在标准模块sys的sys.path变量中, 通过此变量我们可以看到指定程序文件支持查找的所有目录.
换句话说, 如果要导入的模块没有存储在sys.path显示的目录中, 那么导入该模块并运行时, Python解释器就会抛出ModuleNotFoundError(未找到模块)异常.
对于自定义的Python模块, 有三种方法可以使其被Python找到:
- 向
sys.path中临时添加模块文件存储位置的完整路径;- 将模块放在
sys.path变量中已包含的模块加载路径中;- 设置系统环境变量
PYTHONPATH.
临时添加模块完整路径¶
在代码中使用sys.path.append()方法, 将模块文件的存储位置临时添加到sys.path变量中.
import sys
sys.path.append(modultPath)
需要注意的是, 通过该方法添加的目录, 只在当前文件中有效.
将模块保存到指定位置¶
对于一些通用性模块, 应该将其安装到Python的默认加载路径, 以便被所有程序共享.
Pytho程序默认的模块加载路径保存在sys.path变量中, 我们可以先查看sys.path中保存的默认加载路径, 然后将模块文件添加到其中的路径下.
虽然放在默认加载路径下的任何一个位置都是可以的, 但目录site-packages是最佳的选择, 因为它就是用来放置模块的.
设置环境变量PYTHONPATH¶
在环境变量PYTHONPATH中定义模块文件的路径.