2014-07-07 60 views
2

我正在使用.NET 4.0.30319.18444上的IronPython 2.7.0.40編寫代碼。在IronPython控制檯中,如果我對模塊進行了任何更改,它們將不會起作用(除非關閉,打開新控制檯,切換回正確的目錄並重新加載模塊)。有沒有辦法讓IronPython看到變化?在「普通」的Python中,我會使用「runfile」來自動重新加載模塊,並看到最近對源代碼的任何更改,但似乎在IronPython中沒有,所以我使用execfile(),它繼續使用我的初始版本模塊,忽略更改。IronPython重載模塊(UMD,runfile)

回答

2

剛剛發現有一個功能「重新加載」來做到這一點。不幸的是,您必須手動爲每個已更改的模塊調用它:

>>> reload(Module1) 
>>> reload(Module2) 
... 
+0

+1剛纔有同樣的問題,您應該將此標記爲解決問題的答案。一個評論:我沒有使用控制檯,但嵌入Python。重新加載一個腳本,我也清除了範圍,所以在調用reload(mod)之前,我還必須再次導入(mod)以將mod恢復爲scrope。爲了將來的參考,我使用了代碼'foreach(var mod in py.GetModuleFilenames()){py.Execute(String.Format(「import {0}; reload({0})」,mod),scope)); }' – stijn