为了让我的一个脚本正常工作,我不得不附加sys.path。由于我经常这样做,所以考虑永久添加路径。
这通常被认为是安全的吗?
另外,如果我的主要脚本附加了sys.path,那么我是否需要针对该脚本中使用的每个模块都这样做,还是更改是全局的?
谢谢!
为了让我的一个脚本正常工作,我不得不附加sys.path。由于我经常这样做,所以考虑永久添加路径。
这通常被认为是安全的吗?
另外,如果我的主要脚本附加了sys.path,那么我是否需要针对该脚本中使用的每个模块都这样做,还是更改是全局的?
谢谢!
sys.path
添加元素,将它们永久添加可能是一个好主意。但是,不应该直接编辑sys.path
来实现这一点,最好通过设置PYTHONPATH环境变量来完成。通常最好在脚本的开头进行设置。主要原因是可移植性。如果您将脚本从一个文件夹移动到另一个文件夹,甚至更糟的是移动到另一台计算机...它将无法正常工作。
更改几乎总是全局的。例外情况是当您从sys导入路径而不是导入sys时。
# pathprinter.py
import sys
print sys.path
# tester.py
from sys import path
path = ['a', 'completely', 'new', 'value']
import pathprinter
# Original path printed
from sys import path; path = (anything)
只是覆盖了名为path
的局部变量,与sys.path、模块导入或任何相关的操作完全无关。它只是重新分配一个局部变量。 - Ian Clelland