永久性修改sys.path... 是个好主意吗?

4

为了让我的一个脚本正常工作,我不得不附加sys.path。由于我经常这样做,所以考虑永久添加路径。

这通常被认为是安全的吗?

另外,如果我的主要脚本附加了sys.path,那么我是否需要针对该脚本中使用的每个模块都这样做,还是更改是全局的?

谢谢!


“永久添加路径”?你是指“安装脚本所需的模块”吗?你所说的“永久添加”是什么意思? - S.Lott
@S.Lott - 我刚刚也在打同样的问题,哈哈 - jdi
2个回答

4
如果你发现自己经常向sys.path添加元素,将它们永久添加可能是一个好主意。但是,不应该直接编辑sys.path来实现这一点,最好通过设置PYTHONPATH环境变量来完成。
有一些文档介绍了如何在Windows上设置PYTHONPATH,而这篇文章提供了一些关于在Linux上设置环境变量的好信息。

我喜欢这个答案。它很简洁 =) - Louis Thibault

1

通常最好在脚本的开头进行设置。主要原因是可移植性。如果您将脚本从一个文件夹移动到另一个文件夹,甚至更糟的是移动到另一台计算机...它将无法正常工作。

更改几乎总是全局的。例外情况是当您从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

3
from sys import path; path = (anything) 只是覆盖了名为path的局部变量,与sys.path、模块导入或任何相关的操作完全无关。它只是重新分配一个局部变量。 - Ian Clelland

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接