从子模块导入父模块

4
我遇到了一个我不理解的导入错误,并且在其他SO问题中也没有找到解决方案:
我有这个django结构: project_root / -apps / --__init__.py --my_app / ---__init__.py ---models.py ---views.py ---reports / ----__init__.py ----R1.py ----R2.py
在R1.py或R2.py中的任意一个位置,都有如下语句:
from apps.my_app.models import MyModel

抛出 ImportError 错误。我知道 MyModel 存在... 我在 views.py 中以完全相同的方式导入它。

在 apps.my_app.reports.__init__.py 中,我有以下几行:

from R1 import R1_Report
from R2 import R2_Report

由于RX_Report类在这些文件中定义,因此需要注意...

这是我能想到的所有可能相关的信息...有什么想法吗?


1
你可能是circular import的受害者了。你有没有从R1.py或者R2.py导入了东西到apps.my_app.models中? - Aamir Rind
哎呀!你说得对。我在发布答案之前没有看到你的评论。 - Ben Barbour
1个回答

0
啊...算了吧。这是一个循环导入的问题。通过切换解决了它。
from apps.my_app import reports
...
reports.stuff()

import apps.my_app
...
apps.my_app.reports.stuff()

in models.py


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接