如何刷新 sys.path?
Posted
技术标签:
【中文标题】如何刷新 sys.path?【英文标题】:How to refresh sys.path? 【发布时间】:2014-10-12 15:25:10 【问题描述】:我在以用户身份执行脚本的过程中安装了一些软件包。这些包是第一个用户包,所以python在脚本运行之前没有将~/.local/lib/python2.7/site-packages
添加到sys.path
。我想导入那些已安装的软件包。但我不能,因为他们不在sys.path
。
如何刷新sys.path
?
我使用的是 python 2.7。
【问题讨论】:
【参考方案1】:正如What sets up sys.path with Python, and when? 中所述,sys.path
是在内置 site.py
模块的帮助下填充的。
所以你只需要重新加载它。您不能一步完成,因为您的命名空间中没有 site
。总结一下:
import site
from importlib import reload
reload(site)
就是这样。
【讨论】:
这将解决大部分问题。如果您删除或重命名了文件,请注意删除旧的字节码,否则,它将被 Python 使用。如果您使用的是 Python 3(我知道问题是关于 2.7 但我最终在这里寻找 3 的解决方案),那么请记住使用 importlib.invalidate_caches() 或可能使用文件系统的旧内容。 【参考方案2】:最好将其直接添加到您的sys.path
中:
import sys
sys.path.append("/your/new/path")
或者,如果需要先找到:
import sys
sys.path.insert(1, "/your/new/path")
【讨论】:
以上是关于如何刷新 sys.path?的主要内容,如果未能解决你的问题,请参考以下文章