import机制?sys.path、PYTHONPATH?Python的import机制?sys.path、PYTHONPATH?
import foo 或 from foo import bar 时,解释器在 sys.modules 查是否已加载;若无则按 查找路径 找 foo 对应模块(包或 .py),加载并执行、将结果放入 sys.modules,再绑定到当前命名空间。查找路径来自 sys.path:脚本所在目录、PYTHONPATH、标准库、site-packages 等。
sys.path 是字符串列表,为模块搜索路径的先后顺序。默认包含:当前脚本目录、环境变量 PYTHONPATH(若设)、安装的 prefix 下的 lib 等。修改 sys.path(如 append 项目根)可临时加入搜索路径;PYTHONPATH 在进程启动前设置,影响所有 import。包内相对 import 用 from . import xxx,依赖包结构。
虚拟环境会改 sys.path 的 prefix;打包/部署需保证 PYTHONPATH 或 sys.path 含项目与依赖。避免在代码里随意改 sys.path,优先用包结构或安装为包。
| 返回模块 | 返回总览 |