Imagine the directory structure:
/ a/ __init__.py b.py c.py c.py
File /a/b.py
looks like:
import c should_be_absolute = c
All the other files (including __init__
) are empty.
When running a test script (using python 2.7):
import a.b
print a.b.should_be_absolute
with PYTHONPATH=/
from an empty directory (so nothing is added to PYTHONPATH
from current directory) I get
<module 'a.c' from '/a/c.py'>
where according to PEP 328 and the statement import <> is always absolute
I would expect:
<module 'c' from '/c.py'>
The output is as expected when I remove the /a/c.py
file.
What am I missing? And if this is the correct behavior - how to import the c
module from b
(instead of a.c
)?
Update:
According to python dev mailing list it appears to be a bug in the documentation. The imports are not absolute by default in python27.