我具有以下结构:
sim
++main.py
++run2
++++main.py
++++imex.py
++++report.py
++++utils.py
++++__init__.py
utils模块在其软件包中具有使用其他模块的功能。就像这样:
run2中的utils.py
import imex
import report
def func_that_uses_imex_report():
pass
该模块以及关联的对象和功能在其子包中均可以正常运行。所以:
run2中的main.py
import utils
utils.func_that_uses_imex_report()
尽管如此,当在模拟程序包上工作时,发生了关于路径和导入的噩梦。就像这样:
main.py
import run2.utils
run2.utils.func_that_uses_imex_report()
ModuleNotFoundError:没有名为imex的模块
我想有一个非常简单的解决方案,但我只是没有意识到。关键是我希望能够在run2子程序包和sim程序包中使用func_that_uses_imex_report()。
另一个问题是,我不能仅将路径追加到sys.path变量中,因为还有其他子包也需要在sim卡中使用模块utils.py。因此,我的文件夹项目的更现实的结构是:
sim
++main.py
++run2
++++main.py
++++imex.py
++++report.py
++++utils.py
++++__init__.py
++well2
++++frame.py
++++utils.py
++++__init__.py
那该怎么办?