如何刷新sys.path?

19
我在执行脚本时作为用户安装了一些包。这些包是第一个用户包,因此python在运行脚本之前没有将~/.local/lib/python2.7/site-packages添加到sys.path中。我想导入这些已安装的包,但是由于它们不在sys.path中,所以无法导入。
如何刷新sys.path?
我正在使用python 2.7。
2个回答

24
What sets up sys.path with Python, and when?中所解释的那样,sys.path是通过内置的site.py模块来填充的。
因此,您只需要重新加载它。 您不能在一步中完成它,因为您的命名空间中没有site。 总之:
import site
from importlib import reload
reload(site)

就是这样。


1
这将解决大部分问题。如果您删除或重命名文件,请注意删除旧的字节码,否则Python将使用它。如果您正在使用Python 3(我知道问题是关于2.7的,但我在寻找3的解决方案时到了这里),请记得使用importlib.invalidate_caches(),否则可能会使用旧的文件系统内容。 - marco

1

最好直接将其添加到您的sys.path中:

import sys
sys.path.append("/your/new/path")

或者,如果需要先找到它:

import sys
sys.path.insert(1, "/your/new/path")

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