我知道这个问题还有一些疑问: Python files - import from each other
但是这个解决方案对我不起作用。
这是目录结构:
├── tester.py
└── utility
├── __init__.py
├── analysis.py
└── util.py
__init__.py
from .analysis import *
from .util import *
分析.py
import util
def funcA():
print("a")
util.py
import analysis
def funcB():
print("b")
但是这种情况发生了,
ImportError: No module named 'util'
我想按照我定义的方式 main __init__.py
。
有什么办法可以解决这个问题吗?
最佳答案
这是循环导入的经典案例。 analysis
从 util
导入,util
从 analysis
导入。尽管您可以通过导入函数/方法以使其在运行时发生来解决该问题,但我建议改进代码的设计。
循环导入错误通常表明您的代码设计存在问题。在您的情况下,analysis
文件和 util
文件中的代码一起属于单个文件,或者您需要将两个文件的公共(public)内容存储在单独的 common
文件并从两个文件中的 common
导入,而不是相互导入。
关于Python:互相导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44179458/