title: python: Two modules and classes with the same name under different packages
body: <p>I have started to learn python and writing a practice app. The directory structure looks like</p>
  
  <pre><code>src
   |
   --ShutterDeck
      |
      --Helper
         |
         --User.py -&gt; class User
      --Controller
         |
         --User.py -&gt; class User
  </code></pre>
  
  <p>The <code>src</code> directory is in <code>PYTHONPATH</code>. In a different file, lets say <code>main.py</code>, I want to access both <code>User</code> classes. How can I do it.</p>
  
  <p>I tried using the following but it fails:</p>
  
  <pre><code>import cherrypy
  from ShutterDeck.Controller import User
  from ShutterDeck.Helper import User
  
  class Root:
    @cherrypy.expose
    def index(self):
      return 'Hello World'
  
  u1=User.User()
  u2=User.User()
  </code></pre>
  
  <p>That's certainly ambiguous. The other (c++ way of doing it) way that I can think of is </p>
  
  <pre><code>import cherrypy
  from ShutterDeck import Controller
  from ShutterDeck import Helper
  
  class Root:
  
    @cherrypy.expose
    def index(self):
      return 'Hello World'
  
  u1=Controller.User.User()
  u2=Helper.User.User()
  </code></pre>
  
  <p>But when above script is run, it gives the following error</p>
  
  <pre><code>u1=Controller.User.User()
  AttributeError: 'module' object has no attribute 'User'
  </code></pre>
  
  <p>I'm not able to figure out why is it erroring out? The directories <code>ShutterDeck</code>, <code>Helper</code> and <code>Controller</code> have <code>__init__.py</code> in them.</p>