On Fri, 12 Sep 2008 09:47:42 +0200, Thomas Guettler wrote: >> Can you give an example of such a recursive import you want the special >> exception be raised? > > ===> cat one.py > from two import testtwo > def testone(): > print "one" > > ===> cat two.py > import one > def testtwo(): > print "two" > > ===> python one.py > Traceback (most recent call last): > File "one.py", line 1, in <module> > from two import testtwo > File "/mnt/home/tguettler/tmp/rec/two.py", line 1, in <module> > import one > File "/mnt/home/tguettler/tmp/rec/one.py", line 1, in <module> > from two import testtwo > ImportError: cannot import name testtwo
This is an awkward situation anyway because here are *three* modules involved. You start `one.py` which will be imported as `__main__`. `__main__` imports `two` and `two` imports a *new* module `one`! Which tries to import `testtwo` from `two` which doesn't exist at that time. Even if you rearrange the code to load properly `one.py` is loaded and executed *twice* and you end up with two distinct modules generated from that file. Ciao, Marc 'BlackJack' Rintsch -- http://mail.python.org/mailman/listinfo/python-list