Jython动态导入或重新加载

2024-09-29 21:26:35 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我在google上找到了一个帖子,指出应该导入或重新加载子模块。因此,基本大纲是:

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}))


Tags: 模块方法代码import程序nonemodif

热门问题