3.7 sys.path 和模块搜索路径
当我们导入某个模块文件时, Python 解释器去哪里找这个文件呢?只有找到这个文件才能读取、装载运行该模块文件。它一般按照如下路径寻找模块文件(按照顺序寻找,找到即停不继续往下寻找):
- 内置模块
即在程序中import的模块; - 当前目录
指在当前工作路径下,例如下图:
我正在编辑 module_AA1.py 的话,那当前路径就是到 aa 文件夹
- 程序的主目录
指在整个工程目录下,例如下图:
- pythonpath 目录(如果已经设置了 pythonpath 环境变量)
- 标准链接库目录
- 第三方库目录(site-packages 目录)
- .pth 文件的内容(如果存在的话)
- sys.path.append()临时添加的目录
- 如果还没找到就报错
当任何一个 python 程序启动时,就将上面这些搜索路径(除内置模块以外的路径)进行搜集,放到 sys 模块的 path 属性中(sys.path)。
使用 sys.path 查看和临时修改搜索路径
我们在项目的 b 目录下建立测试模块:
import sys
sys.path.append('f:/') # 这是临时增加的,只对当前程序有效
print(sys.path)
运行结果(不完全截图,仅作示意):
运行结果转换成文字版(并在#号段落添加注释):
ps:老师计算机上的运行结果:
pythonpath 环境变量的设置
windows 系统中通过如下操作添加和设置 pythonpath 环境变量:
step1 从控制面板中找到系统属性设置窗口
step2 打开新建环境变量窗口
step3 填写相关参数
填好之后单击确定就完成了pythonpath 环境变量的设置。
.pth 文件的写法
可以在 site-packages 目录下添加.pth 文件。并在文件中增加内容:
# 格式要求一行一个目录
g:\a
g:\b
g:\c
注意:
- 需确保 g:\a,g:\b,g:\c 对应的目录真实存在;
- 在 windows 系统中建立.pth 文件,由于没有文件名不能直接建立。需要输入命名为:“.pth.”才能正常建立.pth 文件。(我试了下Win10里是支持最后不加点直接创建的)