假设在Python中我加载了一个更改sys.path
的模块。这会改变加载器的sys.path
吗?如果是的话,有没有办法确保我以后可以恢复它?
那相反的情况呢?假设 loader 在加载模块之前对sys.path
进行了更改。该模块会看到常规的sys.path
(即PYTHONPATH
等),还是会看到新的sys.path
?
答案 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"]