I have two python modules, a.py
and b.py
, both of which are in lib/
relative to the current directory. Suppose each module needs the functionality of the other.
a.py:
import lib.b
...
b.py:
import lib.a
...
The above example works with
PYTHONPATH=./lib python -c 'from lib import a, b'
However, if I switch the imports in a.py
and b.py
to from lib import b
and from lib import a
, respectively, the above Python command terminates with ImportError
.
Could someone please explain why this breaks? I'm not trying to import any member from either a
or b
. (In that case I would be importing from an uninitialized module, as the question referenced below points out.)