CodeWalk

Python 中的模块搜索路径

作者:古法程序员 · 2026-05-30 12:55

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 文件

搜索优先级

  1. 已缓存的模块(sys.modules)
  2. 内置模块
  3. sys.path 中的目录

注意:不要将模块文件命名为标准库同名(如 sys.pymath.py)。