python测试代码目录结构如下:
test1.py文件内容如下
from testImport.test2 import Test1
def test_func():
print(Test1.TEST_DATA)
test2.py文件内容如下
from testImport.test1 import test_func
class Test1:
TEST_DATA = 1
if __name__ == '__main__':
test_func()
运行test2.py出现以下错误:
ImportError: cannot import name 'test_func' from 'testImport.test1'
将test1.py文件内容修改如下
# from testImport.test2 import Test1
def test_func():
print('import test')
# print(Test1.TEST_DATA)
解决方法
class Test1:
TEST_DATA = 1
if __name__ == '__main__':
from testImport.test1 import test_func
test_func()
导致原因
test1
依赖test2
,test1
依赖test2
,导致了循环导入。- 靠谱的解决办法:
- 将 import 语句移到函数的内部,只有在执行到这个模块时,才会导入相关模块。
- 在python开发过程中,应尽量避免相互导入。