Suppose in the current directory there is a file named somecode.py, and a directory named somecode which contains an __init__.py file. Now I run some other Python script from this directory which executes import somecode. Which file will be imported – somecode.py or somecode/__init__.py?
Is there even a defined and reliable search order in which this is resolved?
Oh, and does anyone have a reference to official documentation for this behavior? 🙂
Packages will be imported before modules. Illustrated:
foo.py:foo/__init__.py:And from interactive interpreter:
I have no idea where this is officially documented.
Edit per comment: This was performed with Python 2.7 on Mac OS X 10.6.7. I also performed this using Python 2.6.5 on Ubuntu 10.10 and experienced the same result.