From 51443412a0ca4ff4a1b6368f81afbe89fc6362be Mon Sep 17 00:00:00 2001 From: rdw Date: Thu, 25 Sep 2008 19:03:34 -0700 Subject: [PATCH] Added more information to api import exception handling. Port of http://svn.secondlife.com/trac/eventlet/changeset/147 --- eventlet/api.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/eventlet/api.py b/eventlet/api.py index 0a2aa4a..3dfdb9e 100644 --- a/eventlet/api.py +++ b/eventlet/api.py @@ -574,22 +574,24 @@ def named(name): """ toimport = name obj = None + import_err_strings = [] while toimport: try: obj = __import__(toimport) break except ImportError, err: # print 'Import error on %s: %s' % (toimport, err) # debugging spam + import_err_strings.append(err.__str__()) toimport = '.'.join(toimport.split('.')[:-1]) if obj is None: - raise ImportError('%s could not be imported' % (name, )) + raise ImportError('%s could not be imported. Import errors: %r' % (name, import_err_strings)) for seg in name.split('.')[1:]: try: obj = getattr(obj, seg) except AttributeError: dirobj = dir(obj) dirobj.sort() - raise AttributeError('attribute %r missing from %r (%r) %r' % ( - seg, obj, dirobj, name)) + raise AttributeError('attribute %r missing from %r (%r) %r. Import errors: %r' % ( + seg, obj, dirobj, name, import_err_strings)) return obj