title: Cannot install extra modules in OpenERP because of RunTimeError : maximum recursion depth exceeded in cmp
body: <p>for some reason, I can't install some extra modules in OpenERP 6.1.2.
  I'm trying to install Aeroo Reporting and Pexego OpenOffice Report. I've installed genshi, relatorio, lxsl, earoolib, but this doesn't affect to below shown error message.
  Elsewhere I've read this error is due to a configuration mistake. I've re-installed OpenERP (6.1 All-in-One) again, after reading the latest 'how to install'-guide by OpenERP (this process is straight-forward, no clues found).</p>
  
  <p>I also re-installed Python again, to see if that caused the problem, which it didn't. I'm puzzled since it happens for all the extra modules I'm trying to install. The reason must be a recursive importing, but I don't know where or what to solve to prevent this recursive importing.</p>
  
  <p>The OpenERP srver runs at Windows 7 - 64 bit, using Python 2.7.3 32 bits. I've double checked to make sure all the Python used is 32 bits.</p>
  
  <p>Does anybody have any ideas? Your help is greatly appreciated!
  Many thanks in advance for your consideration.</p>
  
  <p>Flep</p>
  
  <pre><code>STACK TRACE:
  
  Client Traceback (most recent call last):
    File "C:\Program Files (x86)\OpenERP 6.1-20120813-233323\Server\server\openerp\addons\web\common\http.py", line 180, in dispatch
    File "C:\Program Files (x86)\OpenERP 6.1-20120813-233323\Server\server\openerp\addons\web\controllers\main.py", line 1052, in call_button
    File "C:\Program Files (x86)\OpenERP 6.1-20120813-233323\Server\server\openerp\addons\web\controllers\main.py", line 996, in call_common
    File "C:\Program Files (x86)\OpenERP 6.1-20120813-233323\Server\server\openerp\addons\web\controllers\main.py", line 1010, in _call_kw
    File "C:\Program Files (x86)\OpenERP 6.1-20120813-233323\Server\server\openerp\addons\web\common\openerplib\main.py", line 250, in proxy
    File "C:\Program Files (x86)\OpenERP 6.1-20120813-233323\Server\server\openerp\addons\web\common\openerplib\main.py", line 117, in proxy
    File "C:\Program Files (x86)\OpenERP 6.1-20120813-233323\Server\server\openerp\addons\web\common\http.py", line 608, in send
  
  
  Server Traceback (most recent call last):
    File "C:\Program Files (x86)\OpenERP 6.1-20120813-233323\Server\server\openerp\addons\web\common\http.py", line 593, in send
    File "C:\Program Files (x86)\OpenERP 6.1-20120813-233323\Server\server\.\openerp\netsvc.py", line 360, in dispatch_rpc
    File "C:\Program Files (x86)\OpenERP 6.1-20120813-233323\Server\server\.\openerp\service\web_services.py", line 586, in dispatch
    File "C:\Program Files (x86)\OpenERP 6.1-20120813-233323\Server\server\.\openerp\osv\osv.py", line 167, in execute_kw
    File "C:\Program Files (x86)\OpenERP 6.1-20120813-233323\Server\server\.\openerp\osv\osv.py", line 121, in wrapper
    File "C:\Program Files (x86)\OpenERP 6.1-20120813-233323\Server\server\.\openerp\osv\osv.py", line 176, in execute
    File "C:\Program Files (x86)\OpenERP 6.1-20120813-233323\Server\server\.\openerp\osv\osv.py", line 164, in execute_cr
    File "C:\Program Files (x86)\OpenERP 6.1-20120813-233323\Server\server\openerp\addons\base\module\wizard\base_module_upgrade.py", line 101, in upgrade_module
    File "C:\Program Files (x86)\OpenERP 6.1-20120813-233323\Server\server\.\openerp\pooler.py", line 39, in restart_pool
    File "C:\Program Files (x86)\OpenERP 6.1-20120813-233323\Server\server\.\openerp\modules\registry.py", line 202, in new
    File "C:\Program Files (x86)\OpenERP 6.1-20120813-233323\Server\server\.\openerp\modules\loading.py", line 338, in load_modules
    File "C:\Program Files (x86)\OpenERP 6.1-20120813-233323\Server\server\.\openerp\modules\loading.py", line 253, in load_marked_modules
    File "C:\Program Files (x86)\OpenERP 6.1-20120813-233323\Server\server\.\openerp\modules\loading.py", line 165, in load_module_graph
    File "C:\Program Files (x86)\OpenERP 6.1-20120813-233323\Server\server\.\openerp\modules\module.py", line 409, in load_openerp_module
    File "C:\Program Files (x86)\OpenERP 6.1-20120813-233323\Server\server\.\openerp\modules\module.py", line 139, in load_module
    File "C:\Program Files (x86)\OpenERP 6.1-20120813-233323\Server\server\openerp\addons\report_aeroo\__init__.py", line 32, in &lt;module&gt;
    File "C:\Program Files (x86)\OpenERP 6.1-20120813-233323\Server\server\.\openerp\modules\module.py", line 139, in load_module
    File "C:\Program Files (x86)\OpenERP 6.1-20120813-233323\Server\server\openerp\addons\aeroolib\__init__.py", line 14, in &lt;module&gt;
    File "C:\Program Files (x86)\OpenERP 6.1-20120813-233323\Server\server\.\openerp\modules\module.py", line 139, in load_module
    File "C:\Program Files (x86)\OpenERP 6.1-20120813-233323\Server\server\openerp\addons\aeroolib\__init__.py", line 14, in &lt;module&gt;
    233323\Server\server\.\openerp\modules\module.py", line 139, in load_module
   **&lt;&lt;repeat the above 6 lines 40 times&gt;&gt;**
    File "C:\Program Files (x86)\OpenERP 6.1-20120813-233323\Server\server\.\openerp\modules\module.py", line 99, in find_module
    File "C:\Program Files (x86)\OpenERP 6.1-20120813-233323\Server\server\.\openerp\modules\module.py", line 175, in get_module_path
    File "ntpath.pyo", line 73, in join
    File "ntpath.pyo", line 57, in isabs
    File "ntpath.pyo", line 125, in splitdrive
  RuntimeError: maximum recursion depth exceeded in cmp
  </code></pre>
  
  <p>The aeroolib__init__.py :  (location of this directory: openerp/addons/aeroolib)</p>
  
  <pre><code>line 14:    from aeroolib.reporting import MIMETemplateLoader, ReportRepository, Report
  line 15:    import plugins
  
              __version__ = '1.0.0 RC4'
  </code></pre>
  
  <p>the modules/module.py : (location of this directory : openerp/modules/module.py)</p>
  
  <pre><code>         def load_module(self, module_name):
  
               module_parts = module_name.split('.')
               if len(module_parts) == 3 and module_name.startswith('openerp.addons.'):
                   module_part = module_parts[2]
                   if module_name in sys.modules:
                       return sys.modules[module_name]
  
               if len(module_parts) == 1:
                   module_part = module_parts[0]
                   if module_part in sys.modules:
                       return sys.modules[module_part]
  
               try:
                   # Check if the bare module name shadows another module.
                   f, path, descr = imp.find_module(module_part)
                   is_shadowing = True
               except ImportError, e:
                   # Using `import &lt;module_name&gt;` instead of
                   # `import openerp.addons.&lt;module_name&gt;` is ugly but not harmful
                   # and kept for backward compatibility.
                   is_shadowing = False
  
               # Note: we don't support circular import.
  **line 139:    f, path, descr = imp.find_module(module_part, ad_paths)**
               mod = imp.load_module('openerp.addons.' + module_part, f, path, descr)
               if not is_shadowing:
                   sys.modules[module_part] = mod
                   for k in sys.modules.keys():
                       if k.startswith('openerp.addons.' + module_part):
                           sys.modules[k[len('openerp.addons.'):]] = sys.modules[k]
               sys.modules['openerp.addons.' + module_part] = mod
               return mod
  </code></pre>
  
  <p>the modules/module.py : line 179 </p>
  
  <pre><code>     def get_module_path(module, downloaded=False, display_warning=True):
           """Return the path of the given module.
  
           Search the addons paths and return the first path where the given
           module is found. If downloaded is True, return the default addons
           path if nothing else is found.
  
           """
           initialize_sys_path()
           for adp in ad_paths:
               if os.path.exists(opj(adp, module)) or os.path.exists(opj(adp, '%s.zip' % module)):
                   return opj(adp, module)
  
           if downloaded:
  ln 179:      return opj(_ad, module)
           if display_warning:
               _logger.warning('module %s: module not found', module)
           return False
  </code></pre>