title: Hierarchy in Packages
body: <p>I'm doing simulations of optical properties and started to create a package for my own use that includes all functions and object I have written so far.
  For obvious reasons I use numpy and I used to <code>import numpy</code> in my modules.</p>
  
  <p>Now, with the package, I wish to make numpy globally available for every submodule. From what I've gathered so far, this might be bad practice. However, if I <code>import numpy</code> in each module I get numpy as a key/function for that module, which seems to be even worse practice.</p>
  
  <p>In other words:
  When I create a minimal package with only <code>package/__init __.py</code> and <code>package/module.py</code> and <code>import numpy</code> in <code>module.py</code>, import it and print all available functions</p>
  
  <pre><code>import package
  print package.module.__dict__.keys()
  ['__builtins__', '__file__', '__package__', 'numpy', '__name__', '__doc__']
  </code></pre>
  
  <p>numpy shows up.
  So in principle I could access numpy via</p>
  
  <pre><code>package.module.numpy
  </code></pre>
  
  <p>I am not sure if this is really a problem and how this is done correctly.</p>