我有一个这样的包裹
package/
__init__.py
subpackage1/
__init__.py
moduleA.py
moduleB.py
moduleC.py
moduleD.py
subpackage2/
__init__.py
moduleX.py
moduleY.py
moduleZ.py
在 moduleB.py 中,我正在导入
from moduleA import bar
在 moduleA 中,我正在导入
from moduleB import foo
我收到 ImportError。
ImportError: cannot import name foo
这里可能是什么问题?为了避免这个问题,我该怎么办?我应该在_ init _ .py pf package, subpackage1, subpackage2 中写什么?
_初始化_ .py 的 subpackage1
from moduleA import *
from moduleB import *
from moudleC import *
from moudleD import *
_初始化_ .py 的 subpackage2
from moduleX import *
from moduleY import *
from moduleZ import *
_初始化_包的 .py
from subpackage1 import *
from subpackage2 import *
我的_ init _ .py 文件有问题吗?
编辑:我改变了进口
模块B
from .moduleA import bar
模块A
from .moduleB import foo
尽管如此,我还是遇到了同样的导入错误。
ImportError: cannot import name foo
编辑:
模块B
def Bar():
def __init__(self):
self.foo = Foo()
self.val = 10
.
.
模块A
def Foo():
def __init__(self):
self.bar = Bar()
self.val = 5
.
.
我想做这个。而且我坚持将这两个类保存在不同的文件中。我应该如何导入?