title: Circular import error while organising __init__.py files
body: <p>I am making a series of python files in to their own module.  As such I've put them in a directory and added an init file.</p>
  
  <p>In order for me to be access them as follows</p>
  
  <pre><code>from module import subclass
  </code></pre>
  
  <p>rather than</p>
  
  <pre><code>from module.submodule import subclass
  </code></pre>
  
  <p>I am trying to import all the classes I want to expose in to the <strong>init</strong> file.  However since lots of the submodules refer to each other (its a Django project so all the classes are foreign key'd to one another) when I run the code I very quickly run in to circular imports.</p>
  
  <p>Is there a correct way to organise an <strong>init</strong>.py file such that this is avoided?</p>
  
  <p>For example:</p>
  
  <pre><code>  File "/Users/.../models/__init__.py", line 4, in &lt;module&gt;
  from Guests import Guest
    File "/Users/.../models/Guests.py", line 5, in &lt;module&gt;
  from Logs import LogEntry
    File "/Users/..../models/Logs.py", line 6, in &lt;module&gt;
  from Staff import Staff
    File "/Users/.../Staff.py", line 5, in &lt;module&gt;
  from Properties... import Site
    File "/Users/./Properties.py", line 7, in &lt;module&gt;
  from Guests import Guest
  ImportError: cannot import name Guest
  </code></pre>