4

我必须在 Jython 中为 CCPS(使用 jython 作为脚本接口的程序)编写一些代码。但是,如果我在编辑器中更改子模块,Jython 不会更新它们,除非我重新启动程序(启动时间过长)。SO测试和调整相对较慢。

我用谷歌搜索并找到了一篇文章,指出应该导入或重新加载子模块。因此,基本大纲是:

def loader(module, part=None):
    if not module in sys.modules :
        if part == None:
            exec("import "+module)
        else:
            exec("from %s import %s" % (module, part))                
    else :
        exec("reload "+module) 

但是我有一个问题,模块是在本地加载的,这意味着我可以在loader()函数中访问模块,但不能在我的主代码中访问。

两个问题:

在 Jython 中使用子模块测试某些东西而不在每次子模块更改后重新启动 Jython 的正确方法是什么?有没有办法动态生成全局变量,以便我可以导入全局命名空间?

(例如exec("global %(mod)s = %(mod)s" % ({'mod':module}))

4

1 回答 1

5

如何仅卸载所有模块以便在下一次导入时重新加载它们:

import sys
sys.modules.clear()
于 2013-07-28T18:51:02.887 回答