我在Django中使用python3,我试图进行交叉导入,但失败了,我不知道为什么。。。 结构如下:
|--my_project
|-- system
|--__init__.py
|-- a.py
|-- b.py
a.py
^{pr2}$b.py
from .a import TestA
class TestB(object):
pass
在a.py中导入是有效的。但是b.py中的那个不起作用:ImportError: cannot import name 'TestA'
。我也尝试过使用绝对路径(from myproject.system.a import TestA
),但没有成功。
你知道这个问题吗?在
有几种方法可以用来解决交叉导入问题:
重新组织模块,以避免交叉导入,即将类放到单个模块中,等等。
将
from module import foo
替换为import module
,并使用全名。将导入放在模块末尾(不推荐)。
另请参见Circular imports in Python。在
将导入放在a.py和b.py末尾应该可以解决问题。 如果它不能帮助您尝试将import移到类定义块中,那么替换
到
^{pr2}$小建议:不要使用相对进口。在
相关问题 更多 >
编程相关推荐