I have these modules and packages:
main.py/
pkg1/
__init__.py
maclasse1.py
pkg2/
__init__.py
maclasse2.py
main.py:
from pkg1 import maclasse1
from pkg2 import maclasse2
if __name__=="__main__":
MC1=maclasse1.MaClasse1()
MC1.ma_classe1()
MC2=maclasse2.MaClasse2()
MC2.ma_classe2()
maclasse1.py
from pkg2 import maclasse2
class MaClasse1:
def ma_classe1(self):
print "Ma Classe 1"
c2=maclasse2.MaClasse2()
c2.ma_classe2()
maclasse2.py
from pkg1 import maclasse1
class MaClasse2:
def ma_classe2(self):
print"Ma Classe 2"
mc1=maclasse1.MaClasse1()
mc1.ma_classe1()
When I run the main.py file, I get this error:
Traceback (most recent call last):
File "main.py", line 1, in <module>
from pkg1 import maclasse1
File "/home/nakkini/Desktop/tester/pkg1/maclasse1.py", line 1, in <module>
from pkg2 import maclasse2
File "/home/nakkini/Desktop/tester/pkg2/maclasse2.py", line 1, in <module>
from pkg1 import maclasse1
ImportError: cannot import name maclasse1
How to resolve this problem ?
EDIT:
Following Tim's comment, I creat a tohelp.py
in pkg3
that imports maclasse1.py
whereas maclass2.py
imports tohelp.py
but I still have the same problem.
If you don't intend to change architecture, try this:
maclasse1.py
class MaClasse1:
def ma_classe1(self):
from pkg2 import maclasse2
print "Ma Classe 1"
c2=maclasse2.MaClasse2()
c2.ma_classe2()
maclasse2.py
class MaClasse2:
def ma_classe2(self):
from pkg1 import maclasse1
print"Ma Classe 2"
mc1=maclasse1.MaClasse1()
mc1.ma_classe1()