2014-07-07 62 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