永久修改sys.path ... 好主意还是坏主意?

4 投票
2 回答
6866 浏览
提问于 2025-04-17 11:59

我需要在我的脚本中添加一个路径到 sys.path,这样它才能正常工作。因为我会经常这样做,所以我在考虑是否可以永久性地添加这个路径。

这样做一般来说安全吗?

另外,如果我的主脚本已经添加了这个路径,那我还需要为这个脚本中使用的每个模块都添加一次吗,还是说这个改动是全局的?

谢谢!

2 个回答

1

通常最好在脚本的开头就这样做。主要原因是为了便于移植。如果你把这个脚本从一个文件夹移动到另一个文件夹,或者更糟糕的是,换到另一台电脑上……它就可能无法正常工作。

这些更改几乎总是全局的。唯一的例外是当你从sys中导入path,而不是直接导入sys。

# pathprinter.py
import sys
print sys.path

# tester.py
from sys import path
path = ['a', 'completely', 'new', 'value']
import pathprinter
   # Original path printed
4

如果你发现自己经常需要往 sys.path 里添加元素,那把这些元素永久性地添加进去可能是个好主意。不过,直接编辑 sys.path 不是个好方法,最好的做法是通过设置 PYTHONPATH 这个环境变量来实现。

关于如何在Windows上设置PYTHONPATH,有一些文档可以参考,具体可以查看这篇文章。而在Linux上设置环境变量的信息,可以参考这篇文章

撰写回答