重新加载Python包

问题描述

主模块位于运行程序包中,并执行其他程序包中的内容。主模块还可以更新其他软件包,并且在发生这种情况时,我想重新加载它们,以获取添加到那些软件包中的新功能/模块。 >

项目结构

|--runner
|----main.py
|--core
|----module_1.py
|--configurations
|--utils

但这不起作用。

我尝试了以下命令:

  1. importlib.reload-仅重新加载单个模块,将其与sys.modules递归使用,不会将新模块添加到导入树中。例如:如果更新后,“核心”收到了新模块“ module_new.py”,并将其导入到“ module_1.py”中,则在重新加载后无法识别。
  2. 我尝试使用IPython.lib.deepreload-效果也不佳。

我已经在这个问题上停留了一段时间,还没有找到任何可行的解决方案。 有什么建议吗?谢谢

解决方法

我通过使用外部执行脚本中的while循环重新启动整个程序来解决此问题。