问题描述
主模块位于运行程序包中,并执行其他程序包中的内容。主模块还可以更新其他软件包,并且在发生这种情况时,我想重新加载它们,以获取添加到那些软件包中的新功能/模块。 >
项目结构
|--runner
|----main.py
|--core
|----module_1.py
|--configurations
|--utils
但这不起作用。
我尝试了以下命令:
- importlib.reload-仅重新加载单个模块,将其与sys.modules递归使用,不会将新模块添加到导入树中。例如:如果更新后,“核心”收到了新模块“ module_new.py”,并将其导入到“ module_1.py”中,则在重新加载后无法识别。
- 我尝试使用IPython.lib.deepreload-效果也不佳。
我已经在这个问题上停留了一段时间,还没有找到任何可行的解决方案。 有什么建议吗?谢谢
解决方法
我通过使用外部执行脚本中的while循环重新启动整个程序来解决此问题。