title: Correct way of "Absolute Import" in Python 2.7
body: <ul>
  <li>Python 2.7.10</li>
  <li>In virtualenv</li>
  <li>Enable <code>from __future__ import absolute_import</code> in each module</li>
  </ul>
  
  <p>The directory tree looks like:</p>
  
  <pre><code>Project/
      prjt/
          __init__.py
          pkg1/
              __init__.py
              module1.py
              tests/
                  __init__.py
                  test_module1.py
          pkg2/
              __init__.py
              module2.py
              tests/
                  __init__.py
                  test_module2.py
          pkg3/
              __init__.py
              module3.py
              tests/
                  __init__.py
                  test_module3.py
      data/
      log/
  </code></pre>
  
  <hr>
  
  <p>I tried to use the function <code>compute()</code> of <code>pkg2/module2.py</code> in <code>pkg1/module1.py</code> by writing like:</p>
  
  <pre><code># In module1.py
  import sys
  sys.path.append('/path/to/Project/prjt')
  
  from prjt.pkg2.module2 import compute
  </code></pre>
  
  <p>But when I ran <code>python module1.py</code>, the interpreter raised an ImportError that <code>No module named prjt.pkg2.module2</code>.</p>
  
  <ol>
  <li>What is the correct way of "absolute import"? Do I have to add the path to <code>Project</code> to <code>sys.path</code>?</li>
  <li>How could I run <code>test_module1.py</code> in the interactive interpreter? By <code>python prjt/pkg1/tests/test_module1.py</code> or <code>python -m prjt/pkg1/tests/test_module1.py</code>?</li>
  </ol>