import A.B works, from A import B breaks

Oivvio Polite oivvio at cajal.mbb.ki.se
Fri Aug 4 08:12:40 EDT 2000


The directory 'pack' is in a directory on my python path.
pack contains the following files
__init__.py:
#pack package
__all__ = ["module1", "module2", "module3", "cmodule2", "cmodule2",
"cmodule3"]


module1.py:
print "1"
from pack import module2


module2.py:
print "2"
from pack import module3


module3.py:
print "3"
from pack import module1


cmodule1.py:
print "1"
import pack.cmodule2


cmodule2.py:
print "2"
import pack.cmodule3


cmodule3.py:
print "3"
import pack.cmodule1


Executing cmodule1.py from a shell gives this output:
1
2
3
1


Executing module1.py from a shell gives this output:
1
2
3
1
Traceback (innermost last):
  File "c:/src/python/pack/module1.py", line 2, in ?
    from pack import module2
  File "c:\src\python\pack\module2.py", line 2, in ?
    from pack import module3
  File "c:\src\python\pack\module3.py", line 2, in ?
    from pack import module1
  File "c:\src\python\pack\module1.py", line 2, in ?
    from pack import module2
ImportError: cannot import name module2

Could anyone explain this?

oivvio






More information about the Python-list mailing list