4
說在Python中,我加載了一個模塊來改變sys.path
。這也會改變裝載機的sys.path
嗎?如果是這樣,有什麼辦法可以確保我可以在之後恢復嗎?加載改變sys.path的模塊
那麼相反的情況呢?假設加載程序在加載模塊之前對sys.path
進行了更改。模塊是否會看到正常的sys.path
(即PYTHONPATH
等),還是會看到新的sys.path
?
說在Python中,我加載了一個模塊來改變sys.path
。這也會改變裝載機的sys.path
嗎?如果是這樣,有什麼辦法可以確保我可以在之後恢復嗎?加載改變sys.path的模塊
那麼相反的情況呢?假設加載程序在加載模塊之前對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"]
我很想在這個問題的答案。你有沒有運行任何代碼來測試呢? – Owen