加载更改sys.path的模块

时间:2013-07-30 02:33:50

标签: python

假设在Python中我加载了一个更改sys.path的模块。这会改变加载器的sys.path吗?如果是的话,有没有办法确保我以后可以恢复它?

那相反的情况呢?假设 loader 在加载模块之前对sys.path进行了更改。该模块会看到常规的sys.path(即PYTHONPATH等),还是会看到新的sys.path

1 个答案:

答案 0 :(得分:4)

是的,它会在任何地方影响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"]