I wrote: >> module5.py: >> from package import module6 # absolute import >> >> module6.py: >> from package import module5 >> [...] >> ImportError: cannot import name module5 >> >> Is this behavior expected? Or is it a bug? Matthias Urlichs replied: > The problem is that importing with from consists of two steps: > - load the module > - add the imported names to the local namespace > > Since this addition is by reference to the actual object and not to > the symbol's name in the other module, a concept which Python doesn't > have (use Perl if you want this...), your recursive import doesn't > work. > > The solution would be: > import package.module6 as module6 > > which should have the same effect. Perhaps I'm just dense, or perhaps it's because of my choice of names in my example, but I don't understand the explanation. Could you be more specific, perhaps with a concrete example? Despite Guido's "Good explanation!", the above text in the FAQ entry wouldn't eliminate my confusion. I suspect it's a good explanation for those that already understand what's going on behind the scenes. -- David Goodger <goodger@users.sourceforge.net> Open-source projects: - Python Docutils: http://docutils.sourceforge.net/ (includes reStructuredText: http://docutils.sf.net/rst.html) - The Go Tools Project: http://gotools.sourceforge.net/
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4