Ошибка импорта. Циркулярные ссылки
У меня есть такая посылка
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
В модуль А я импортирую
from moduleB import foo
Я получаю ImportError.
ImportError: cannot import name foo
В чем может быть проблема здесь? и чтобы избежать этой проблемы, что мне делать? и что я должен написать в_init_.py pf пакет, subpackage1, subpackage2?
_init_.py of subpackage1
from moduleA import *
from moduleB import *
from moudleC import *
from moudleD import *
_init_.py из subpackage2
from moduleX import *
from moduleY import *
from moduleZ import *
_init_.py пакета
from subpackage1 import *
from subpackage2 import *
Есть ли проблемы с моим_init_.py файлы?
EDIT: I have changed imports
moduleB
from .moduleA import bar
ModuleA
from .moduleB import foo
Тем не менее, я получаю ту же ошибку импорта.
ImportError: cannot import name foo
EDIT:
moduleB
def Bar():
def __init__(self):
self.foo = Foo()
self.val = 10
.
.
ModuleA
def Foo():
def __init__(self):
self.bar = Bar()
self.val = 5
.
.
Я хочу сделать это. И я настаиваю на сохранении обоих классов в разных файлах. Как я должен импортировать?