Suppose I have:
src/
__init__.py
a.py
b.py
Suppose __init__.py is an empty file, and a.py is just one line:
TESTVALUE = 5
Suppose b.py is:
from src import a
print(a.TESTVALUE)
Now in both Python 2.7 and Python 3.x, running b.py gives the result (5).
However, if I delete the file __init__.py, b.py still works in Python 3.x, but in Python 2.7, I get the error:
Traceback (most recent call last):
File "b.py", line 5, in <module>
from src import a
ImportError: No module named src
Why does Python 2.7 exhibit different behaviour in this situation?