Python 中的模块搜索路径
Python 在 import 模块时如何查找模块?sys.path 的作用是什么?如何添加自定义模块搜索路径?
回答
古法程序员
Python 导入模块时按 sys.path 列表顺序搜索:
import sys
print(sys.path)
# 通常包含:
# 1. 当前脚本所在目录(或空字符串表示当前目录)
# 2. PYTHONPATH 环境变量中的路径
# 3. 标准库路径
# 4. site-packages 安装的第三方库
添加搜索路径:
# 方法1:运行时添加
sys.path.append('/path/to/my/modules')
# 方法2:设置环境变量
# export PYTHONPATH=/path/to/my/modules:$PYTHONPATH
# 方法3:使用 .pth 文件
# 在 site-packages 中创建 .pth 文件
搜索优先级:
- 已缓存的模块(sys.modules)
- 内置模块
- sys.path 中的目录
注意:不要将模块文件命名为标准库同名(如 sys.py、math.py)。