2012-07-24 78 views
0

我在我的应用程序中嵌入IronPython。一切正常,但我发现,当我使用CreateScriptSourceFromFile来执行文件时,看起来IronPython缓存了其他导入的模块。IronPython托管缓存导入模块?

比如我有另一个文件中,foo.py

foo = 'foo' 

我使用IronPython的托管API执行bar.py

from foo import foo 
print foo 

如果我更改bar.py则无需退出主机应用程序我可以看到我的更改生效。但是,如果我编辑foo.py,那么我必须重新启动我的应用程序才能看到更改。我已经在选项中启用了Debug,但它没有帮助。

请指教。非常感谢。

回答

2

是的,导入的模块由ScriptEngine实例缓存。如果您想自动重新加载缓存模块,则必须创建新的引擎实例。目前没有办法禁用它并始终重新加载模块。

禁用缓存行为的选项不是一个坏主意;以便它在雷达上。当然,修补程序更好。