Błąd importu. Odniesienia kołowe
Mam taki pakiet
package/
__init__.py
subpackage1/
__init__.py
moduleA.py
moduleB.py
moduleC.py
moduleD.py
subpackage2/
__init__.py
moduleX.py
moduleY.py
moduleZ.py
W moduleB.py importuję
from moduleA import bar
W module A importuję
from moduleB import foo
Dostaję ImportError.
ImportError: cannot import name foo
Co może być problemem tutaj? i aby uniknąć tego problemu, co powinienem zrobić? i co powinienem napisać_w tym_.py pf pakiet, podpakiet1, podpakiet2?
_w tym_.py z podpakietu1
from moduleA import *
from moduleB import *
from moudleC import *
from moudleD import *
_w tym_.py z podpakietu2
from moduleX import *
from moduleY import *
from moduleZ import *
_w tym_.py pakietu
from subpackage1 import *
from subpackage2 import *
Czy jest jakiś problem z moim_w tym_.py pliki?
EDYTOWAĆ: Zmieniłem import
moduleB
from .moduleA import bar
modułA
from .moduleB import foo
Mimo to otrzymuję ten sam błąd importu.
ImportError: cannot import name foo
EDYTOWAĆ:
moduleB
def Bar():
def __init__(self):
self.foo = Foo()
self.val = 10
.
.
modułA
def Foo():
def __init__(self):
self.bar = Bar()
self.val = 5
.
.
Chce to zrobić. A ja nalegam, aby obie klasy były w różnych plikach. Jak powinienem importować?