Circular import error while organising __init__.py files
<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>