2013-07-30 64 views
4

說在Python中,我加載了一個模塊來改變sys.path。這也會改變裝載機的sys.path嗎?如果是這樣,有什麼辦法可以確保我可以在之後恢復嗎?加載改變sys.path的模塊

那麼相反的情況呢?假設加載程序在加載模塊之前對sys.path進行了更改。模塊是否會看到正常的sys.path(即PYTHONPATH等),還是會看到新的sys.path

+2

我很想在這個問題的答案。你有沒有運行任何代碼來測試呢? – Owen

回答

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"]