我知道这个问题有一些问题: Python files - import from each other
但是这个解决方案并不适合我。
这是目录结构:
├── tester.py
└── utility
├── __init__.py
├── analysis.py
└── util.py
__初始化__。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
为主。
有什么方法可以解决这个问题吗?
答案 0 :(得分:2)
这是循环进口的典型案例。 analysis
从util
导入,util
从分析导入。虽然您可以通过在函数/方法中导入它在运行时发生来解决问题,但我建议改进代码的设计。
通常,循环导入错误表明代码设计存在问题。在您的情况下,analysis
文件和util
文件中的代码一起属于单个文件,或者您需要将这两个文件的公共内容存储在单独的common
文件中,从两个文件中的common
导入,而不是从彼此导入。