永久修改sys.path ... 好主意还是坏主意?
我需要在我的脚本中添加一个路径到 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上设置环境变量的信息,可以参考这篇文章。