的Python:进口对方
问题描述:
我知道有关于这个问题的一些问题: Python files - import from each other的Python:进口对方
但这种解决方案并不为我工作。
这是目录结构:
├── tester.py
└── utility
├── __init__.py
├── analysis.py
└── util.py
__init__.py
from .analysis import *
from .util import *
analysis.py
import util
def funcA():
print("a")
util.py
import analysis
def funcB():
print("b")
但出现这种情况,
ImportError: No module named 'util'
我想主要__init__.py
我定义的方式。
有什么办法可以解决这个问题吗?
答
这是一个循环进口的经典案例。 analysis
从util
和util
正在导入分析。虽然你可以通过导入一个函数/方法来解决这个问题,但它会在运行时发生,所以我建议改进代码的设计。
通常,循环导入错误是您的代码设计中存在问题的标志。在你的情况下,要么analysis
文件中的代码和util
文件属于一个文件,要么你需要将这两个文件的公共内容存储在一个单独的common
文件中,并从common
中导入这两个文件中,而不是从彼此。
发生错误在哪个模块? – stybl
请参阅[此链接的清晰说明](https://stackoverflow.com/questions/11698530/two-python-modules-require-each-others-contents-can-that-work) – gowtham
您的示例应提供一些说明*为什么*每个模块需要导入另一个。 – chepner