title: Python Importing Modules From Different Folder without sys.path
body: <p>For the <strong>millionth</strong> time, this question has been asked many times but all the answers are to mess around with <code>sys.path</code>. Can someone suggest me the perfect way to arrange my importing?
  The following is my project structure:</p>
  
  <pre><code>MyProject-
  - config.yaml  
  - data  
  - docs  
  - logs
  - package_a
    - __init__.py
    - file1.py
  - package_b 
    - __init__.py
    - file2.py 
  - requirements.txt
  </code></pre>
  
  <p>I want to import <code>file1</code> in <code>file2.py</code></p>
  
  <p><code>file2.py</code> looks like this:</p>
  
  <pre><code>from package_a.file1 import some_function
  </code></pre>
  
  <p>Now whenever I run <code>file2.py</code> like this: <code>python package_b/file2.py</code> from the <code>MyProject</code> directory. I get the following error: 
  <code>ModuleNotFoundError: No module named 'package_a'</code>.</p>
  
  <p>Why is importing so counter intuitive in python? Please give a clear explanation on how to solve this please?</p>