title: python git-submodule importing from other git-submodule
body: <p>Using Python 3.6
  I did create multiple modules (like DBmanager or jsonParser etc which I use across multiple different python projects)</p>
  
  <p>For simplicity: I have created a module, lets call it 'gitmodule03'.
  Internally it is supposed to be using yet another module from github 'gitmodule01' for parsing data. I have added 'gitmodule01' to 'gitmodule03' by</p>
  
  <pre><code>'git submodule add http://git/gitmodule01'
  </code></pre>
  
  <p>Separatenly, I am developing my 'MainPackage' which will use directly 'gitmodule03' and 'gitmodule01' (among others). I've added them all to my main Program with </p>
  
  <pre><code>'git submodule add http://git/gitmodule01'
  'git submodule add http://git/gitmodule02'
  'git submodule add http://git/gitmodule03'
  </code></pre>
  
  <p>and my package looks like this:</p>
  
  <pre><code>.
  └── MainPackage
      ├── modules
      │   ├── __init__.py
      │   ├── gitmodule01
      │   │   ├── __init__.py
      │   │   └── mymodule01.py
      │   ├── gitmodule02
      │   │   ├── __init__.py
      │   │   └── mymodule02.py
      │   ├── gitmodule03
      │   │   ├── __init__.py
      │   │   ├── mymodule03.py
      │   │   └── gitmodule01
      │   │       └── 
      │   └── mymodule04.py
      └── myMainProgram.py
  </code></pre>
  
  <p><strong>At this moment 'gitmodule03' is NOT importing 'gitmodule01' internally</strong>. I was hoping that importing it in main myMainProgram.py would propagate across submodules (which is not the case)</p>
  
  <p>If my <strong>myMainProgram.py</strong> imports them all:</p>
  
  <pre><code>from modules.gitmodule01.mymodule01 import my01class
  from modules.gitmodule02.mymodule02 import my02class
  from modules.gitmodule03.mymodule03 import my03class
  </code></pre>
  
  <p>my03class() # will work</p>
  
  <p>my02class() # is internally using 'my03class()' and will error out:</p>
  
  <p><strong><em>NameError: name 'my03class' is not defined</em></strong></p>
  
  <p>How can I design those so they can work independently as well as within bigger package, in clean, pythonic way ?</p>
  
  <p><em>I would like to have those modules idependent so they won't have to use any hard coded <strong>sys.path()</em></strong> methods</p>
  
  <p><strong>Edit Test Cases:</strong></p>
  
  <p>1.</p>
  
  <pre><code>myMainProgram.py
  sys.path.insert(0, "modules/gitmodule03/gitmodule01/")
  from mymodule01 import my01class
  from modules.gitmodule03.mymodule03 import my03class
  my01class() #works
  my03class() # NameError: name 'my01class' is not defined
  </code></pre>
  
  <p>2.</p>
  
  <pre><code>myMainProgram.py
  from modules.gitmodule03.gitmodule01.mymodule01 import my01class
  from modules.gitmodule03.mymodule03 import my03class
  my01class() #works
  my03class() # NameError: name 'my01class' is not defined
  </code></pre>
  
  <p>3.</p>
  
  <pre><code>mymodule03.py
  from gitmodule01.mymodule01 import my01class
  my01class() #works
  
  myMainProgram.py
  from modules.gitmodule01.mymodule01 import my01class
  from modules.gitmodule03.mymodule03 import my03class
  my03class() # ModuleNotFoundError: No module named 'gitmodule01'
  </code></pre>
  
  <p>4.</p>
  
  <pre><code>mymodule03.py
  from .gitmodule01.mymodule01 import my01class
  my01class() # ModuleNotFoundError: No module named '__main__.gitmodule01'; '__main__' is not a package
  
  myMainProgram.py
  from modules.gitmodule03.mymodule03 import my03class
  my03class() # works
  </code></pre>
  
  <p>With Test Case #4 It looks like i could make myMainProgram.py work but i would have to break module on its own.</p>