【问题标题】:IronPython hosting caching imported module?IronPython 托管缓存导入的模块?
【发布时间】:2012-07-25 00:34:11
【问题描述】:

我将 IronPython 嵌入到我的应用程序中。一切正常,但我发现当我使用CreateScriptSourceFromFile 执行文件时,IronPython 似乎缓存了其他导入的模块。

例如我有另一个文件foo.py:

foo = 'foo'

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

from foo import foo
print foo

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

请指教。非常感谢。

【问题讨论】:

    标签: c# .net ironpython


    【解决方案1】:

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

    禁用缓存行为的选项不是一个坏主意; open an issue 所以它在雷达上。当然,补丁更好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-16
      • 1970-01-01
      • 2010-11-25
      • 1970-01-01
      • 2012-03-08
      • 1970-01-01
      • 2011-02-24
      • 1970-01-01
      相关资源
      最近更新 更多