circular import snafu

Mookie D. mookied at iname.com
Thu Aug 10 01:38:31 EDT 2000


Hi all,

Apologies if this is a rookie move, but I have looked for reasons why
this may be happening and my trusty Python books and FAQ haven't solved
it.

I have several modules that by necessity are including each other in a
circular manner.  Depending on which module I load first, I get
different errors but always end in an error such as

     ImportError: cannot import name MailList

This looks like it's from circular refs and a name which is already used
in the namespace.  In the included error dump below:

email imports mailboxMgr
...which imports email
...which imports dmpost
...which imports MailList  (I think)
...which imports (from webapp) subscription
...which imports email (again, why isn't python filtering this?)
...which imports dmpost (again) and gets the error:

  File "dmpost.py", line 29, in ?
ImportError: cannot import name MailList

See below for the gory details.  I appreciate your suggestions for what
I ought to be trying or doing differently, or HT debug this.

thanks --
Mook.


Traceback (innermost last):
  File "email.py", line 13, in ?
    import mailboxMgr
  File "/usr/lib/python1.5/ihooks.py", line 396, in import_module
    q, tail = self.find_head_package(parent, name)
  File "/usr/lib/python1.5/ihooks.py", line 432, in find_head_package
    q = self.import_it(head, qname, parent)
  File "/usr/lib/python1.5/ihooks.py", line 484, in import_it
    m = self.loader.load_module(fqname, stuff)
  File "/usr/lib/python1.5/ihooks.py", line 269, in load_module
    m = self.hooks.load_source(name, filename, file)
  File "/usr/lib/python1.5/ihooks.py", line 167, in load_source
    return imp.load_source(name, filename, file)
  File "/usr/local/dm/webapp/mailboxMgr.py", line 12, in ?
    import email
  File "/usr/lib/python1.5/ihooks.py", line 396, in import_module
    q, tail = self.find_head_package(parent, name)
  File "/usr/lib/python1.5/ihooks.py", line 432, in find_head_package
    q = self.import_it(head, qname, parent)
  File "/usr/lib/python1.5/ihooks.py", line 484, in import_it
    m = self.loader.load_module(fqname, stuff)
  File "/usr/lib/python1.5/ihooks.py", line 269, in load_module
    m = self.hooks.load_source(name, filename, file)
  File "/usr/lib/python1.5/ihooks.py", line 167, in load_source
    return imp.load_source(name, filename, file)
  File "email.py", line 18, in ?
    import dmpost
  File "/usr/lib/python1.5/ihooks.py", line 396, in import_module
    q, tail = self.find_head_package(parent, name)
  File "/usr/lib/python1.5/ihooks.py", line 432, in find_head_package
    q = self.import_it(head, qname, parent)
  File "/usr/lib/python1.5/ihooks.py", line 484, in import_it
    m = self.loader.load_module(fqname, stuff)
  File "/usr/lib/python1.5/ihooks.py", line 271, in load_module
    m = self.hooks.load_compiled(name, filename, file)
  File "/usr/lib/python1.5/ihooks.py", line 169, in load_compiled
    return imp.load_compiled(name, filename, file)
  File "dmpost.py", line 29, in ?
  File "/usr/lib/python1.5/ihooks.py", line 401, in import_module
    self.ensure_fromlist(m, fromlist)
  File "/usr/lib/python1.5/ihooks.py", line 466, in ensure_fromlist
    submod = self.import_it(sub, subname, m)
  File "/usr/lib/python1.5/ihooks.py", line 484, in import_it
    m = self.loader.load_module(fqname, stuff)
  File "/usr/lib/python1.5/ihooks.py", line 269, in load_module
    m = self.hooks.load_source(name, filename, file)
  File "/usr/lib/python1.5/ihooks.py", line 167, in load_source
    return imp.load_source(name, filename, file)
  File "/home/mailman/Mailman/MailList.py", line 49, in ?
    from webapp import subscription, dmconfig
  File "/usr/lib/python1.5/ihooks.py", line 401, in import_module
    self.ensure_fromlist(m, fromlist)
  File "/usr/lib/python1.5/ihooks.py", line 466, in ensure_fromlist
    submod = self.import_it(sub, subname, m)
  File "/usr/lib/python1.5/ihooks.py", line 484, in import_it
    m = self.loader.load_module(fqname, stuff)
  File "/usr/lib/python1.5/ihooks.py", line 269, in load_module
    m = self.hooks.load_source(name, filename, file)
  File "/usr/lib/python1.5/ihooks.py", line 167, in load_source
    return imp.load_source(name, filename, file)
  File "/usr/local/dm/webapp/subscription.py", line 16, in ?
    import email
  File "/usr/lib/python1.5/ihooks.py", line 396, in import_module
    q, tail = self.find_head_package(parent, name)
  File "/usr/lib/python1.5/ihooks.py", line 432, in find_head_package
    q = self.import_it(head, qname, parent)
  File "/usr/lib/python1.5/ihooks.py", line 484, in import_it
    m = self.loader.load_module(fqname, stuff)
  File "/usr/lib/python1.5/ihooks.py", line 269, in load_module
    m = self.hooks.load_source(name, filename, file)
  File "/usr/lib/python1.5/ihooks.py", line 167, in load_source
    return imp.load_source(name, filename, file)
  File "email.py", line 18, in ?
    import dmpost
  File "/usr/lib/python1.5/ihooks.py", line 396, in import_module
    q, tail = self.find_head_package(parent, name)
  File "/usr/lib/python1.5/ihooks.py", line 432, in find_head_package
    q = self.import_it(head, qname, parent)
  File "/usr/lib/python1.5/ihooks.py", line 484, in import_it
    m = self.loader.load_module(fqname, stuff)
  File "/usr/lib/python1.5/ihooks.py", line 271, in load_module
    m = self.hooks.load_compiled(name, filename, file)
  File "/usr/lib/python1.5/ihooks.py", line 169, in load_compiled
    return imp.load_compiled(name, filename, file)
  File "dmpost.py", line 29, in ?
ImportError: cannot import name MailList


Sent via Deja.com http://www.deja.com/
Before you buy.



More information about the Python-list mailing list