所以我有一个结构为:
的应用程序main.py
core/__init__.py
core/user_interface.py
core/util/__init__.py
core/util/widgets/__init__.py
core/util/widgets/tab.py
main.py文件导入:
from core import user_interface
这成功运行,然后user_interface进行导入调用:
import core.util.widgets.tab
然后文件tab.py有一个导入调用:
from core import user_interface
最后一次导入失败并返回错误:
ImportError: cannot import name user_interface
执行应用程序或尝试从终端导入user_interface模块失败并显示此错误,因为导入链断开。我知道我在某个地方犯了一个非常基本的错误,但我知道这件事情的结局。如果有人能帮忙解决这个问题,我将非常感激。
答案 0 :(得分:1)
我刚刚遇到了完全相同的问题 - 但只有在模块被调用core
时才会出现。 (我通过重命名模块证明了这一点并且工作正常。重命名回core
并再次抛出ImportError
异常。
我对python相当新,但已经得出结论是由于我的Python路径上已存在另一个名为core
的模块(虽然我找不到)。
我通过简单地为我的模块(或者更确切地说是Django应用程序)选择一个不同的名称来解决这个问题
答案 1 :(得分:0)
这是循环导入。您正在从import core.util.widgets.tab
开始user_interface
,然后尝试从user_interface
内导入tab
。这是一个永远无法完成的导入,取决于另一个的性质。本文将更详细地讨论它们:http://effbot.org/zone/import-confusion.htm#circular-imports。