python中环境变量PYTHONPATH作用
PYTHONPATH 是 Python 的一个环境变量,它的主要作用是告诉 Python 解释器去哪里寻找导入的模块和包(即 import 语句要加载的文件)。
1. 核心工作原理
当你执行 import my_module 时,Python 会按照一定的顺序去寻找这个文件:
- 当前运行脚本的目录。
PYTHONPATH中设置的所有目录(如果设置了的话)。- 标准库目录。
- 第三方库安装目录(如
site-packages)。
核心作用:如果你自己写了一个工具包,但它既不在你当前运行的项目文件夹下,你又不想用
pip install安装它,你就可以把它的路径加入到PYTHONPATH中,这样 Python 就能在任何地方直接import它。
2. 应用场景
场景一:多模块/多项目协同开发
假设你的电脑上有如下的项目结构:
1 | /Users/username/workspace/ |
在 main.py 中,你想直接写 import utils。因为它们不在同一个目录下,Python 默认会报错 ModuleNotFoundError。
- 解决方法:将
/Users/username/workspace/shared_tools添加到PYTHONPATH中。
场景二:避免复杂的相对导入
在大型项目中,深层级的相对导入(如 from ...sub_folder.module import func)非常容易出错。通过把项目的根目录加入 PYTHONPATH,你可以统一使用绝对导入:
1 | from my_project.sub_folder.module import func |
3. 如何查看和设置 PYTHONPATH
3.1查看当前生效的搜索路径
你可以在 Python 中通过 sys.path 查看 Python 实际会去哪些地方找包(PYTHONPATH 中的路径会被自动加载到 sys.path 中):
1 | import sys |
3.2设置方法
方法 A:在终端中临时设置(推荐用于测试)
- Linux / macOS:
1 | export PYTHONPATH="/path/to/your/folder:$PYTHONPATH" |
- Windows (Command Prompt):
1 | set PYTHONPATH=C:\path\to\your\folder;%PYTHONPATH% |
- Windows (PowerShell):
1 | $env:PYTHONPATH="C:\path\to\your\folder;" + $env:PYTHONPATH |
方法 B:在代码中动态修改(最灵活)
如果你不想配置系统环境变量,也可以在 Python 代码运行初期直接修改 sys.path:
1 | import sys |