【发布时间】:2021-01-05 16:29:02
【问题描述】:
主模块位于 runner 包中并执行其他包中的内容。主模块还可以更新其他包,当这种情况发生时,我想重新加载它们以获取添加到这些包中的新功能/模块。。 p>
项目结构
|--runner
|----main.py
|--core
|----module_1.py
|--configurations
|--utils
但这不起作用。
我尝试了以下命令:
- importlib.reload - 仅重新加载单个模块,递归使用 sys.modules 不会将新模块添加到导入树中。示例:如果在更新后,“core”收到了一个新模块“module_new.py”并将其导入“module_1.py”,则重新加载后无法识别。
- 我尝试使用 IPython.lib.deepreload - 效果不佳。
我已经被这个问题困扰了一段时间,还没有找到任何可行的解决方案。 建议?谢谢
【问题讨论】:
-
你能添加你尝试过的代码吗?
-
不幸的是,代码是受保护的,所以我不能分享它,但我写的例子是一个真实的案例。我更新了其中一个包(在已经运行并从内部使用模块之后),现在该包具有无法识别/加载的新模块。
标签: python python-3.x module package reload