0

所以我有一个结构如下的应用程序:

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 模块失败并出现此错误。我知道我在某个地方犯了一个非常基本的错误,但我对这件事已经束手无策了。如果有人能帮助解决这个问题,我将不胜感激。

4

2 回答 2

1

我刚刚遇到了完全相同的问题 - 但只有在调用模块时才会出现core。(我通过重命名模块证明了这一点,它工作正常。重命名回coreImportError再次抛出异常)。

我对 python 还很陌生,但我得出结论,这是由于core我的 Python 路径上已经存在另一个名为的模块(尽管我找不到)。

我通过简单地为我的模块(或者更确切地说是 Django 应用程序)选择一个不同的名称来解决这个问题

于 2011-08-30T21:33:53.190 回答
0

这是循环导入。您正在执行import core.util.widgets.tabfromuser_interface然后尝试user_interface从inside 导入tab。这是一个永远无法完成的导入,取决于彼此的性质。这篇文章更详细地讨论了它们:http: //effbot.org/zone/import-confusion.htm#circular-imports

于 2011-05-10T18:11:27.053 回答