title: Strange Python import behaviour
body: <p>I have a problem with importing sub-packages. The packages structure I have is:</p>
  
  <pre><code>project/
      __init__.py
      defaults.py
      helpers/
         __init__.py
         misc.py
  </code></pre>
  
  <p>I need to use data from <code>defaults.py</code> all over the project, including <code>helpers\misc.py</code>, while in <code>defaults.py</code> I need to use some functions from <code>helpers\misc.py</code>. To solve the circular reference I'm trying to refer everything from project root, i.e. inside <code>defaults.py</code> I do</p>
  
  <pre><code>import project
  
  project.helpers.somefunction()
  </code></pre>
  
  <p>However this doesn't work. It does work though when I import the function directly, like this:    </p>
  
  <pre><code>from project.helpers import somefunction
  
  somefunction()
  </code></pre>
  
  <p>But then I have a circular reference problem.
  I also have same problem everywhere inside the project subpackages, but in other places I can import subpackages directly and workaround the problem.</p>
  
  <p>So, why it works if I import from subpackages, but doesn't when I refer to same subpackages starting from the root package? </p>
  
  <p><em>PS: there are no files like <code>helpers.py</code> on the same level with <code>helpers\</code> or inside it.</em></p>
  
  <p><em>PPS: whole project package is added to <code>sys.path</code> via <code>sys.path.insert(0, '&lt;project_abs_path&gt;')</code></em></p>
  
  <p><em>PPPS: Python 2.7.3, Ubuntu 12.04</em></p>