title: Python absolute import in module fails
body: <p>I have a project which looks like this:</p>
  
  <pre><code>my_project/
            __init__.py -- empty
            run.py
            datacheck/
                    __init__.py -- empty
                    datacheck.py -- containing class DataCheck(object)
                    config.py -- containing BusinessConfig(object)
                    business.py -- containing class BusinessCheck(DataCheck)
  </code></pre>
  
  <p>My <code>PYTHONPATH</code> is configured to have /my_project in it.</p>
  
  <p>In run.py, I have the following code:</p>
  
  <pre><code>from datacheck.business import BusinessCheck
  business = BusinessCheck()
  business.check_data()
  </code></pre>
  
  <p>In business.py, I have the following imports that fail:</p>
  
  <pre><code>from datacheck.config import BusinessConfig
  from datacheck.datacheck import DataCheck
  </code></pre>
  
  <p>A relative import like <code>from .config import BusinessConfig</code> works - however I've read in numerous threads that an absolute import is preferred.</p>
  
  <p>To do a simple test, I also created the following:</p>
  
  <pre><code>myproject/
            __init__.py -- empty
            run_test.py
            test/
                __init__.py -- empty
                test1.py -- containing class Test1(object)
                test2.py -- containing class Test2(Test1)
  </code></pre>
  
  <p>run_test.py imports and runs the <code>Test2</code> class, this didn't fail. </p>
  
  <p>It left me a bit flabbergasted, I don't understand why my absolute imports in datacheck are not working - can anyone explain?</p>