假设我在 Python 中加载了一个更改 sys.path
的模块。这也会改变加载器的 sys.path
吗?如果是,是否有任何方法可以确保我以后可以恢复它?
相反的情况呢?假设 loader 在加载模块之前更改了 sys.path
。模块会看到常规的 sys.path
(即 PYTHONPATH
等),还是会看到新的 sys.path
?
最佳答案
是的,它会影响 sys.path
任何地方....您可以保存它并稍后恢复
import sys
_opath = sys.path[:] #get a copy of whatever sys.path is at this point
#do imports
sys.path = _opath
你可以将它转换成一个元组而不是一个列表......这取决于它们如何添加到可能有效的路径但是如果它们正在改变路径它可能会破坏你的一些导入的模块
您还可以访问
os.environ["PYTHONPATH"]
关于python - 加载改变 sys.path 的模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17937402/