diff options
author | Joe Friedl <joe@joefriedl.net> | 2013-03-30 21:26:29 -0400 |
---|---|---|
committer | Simon Charette <charette.s@gmail.com> | 2013-03-31 23:00:06 -0400 |
commit | 2d0db67813d457dc890a2287d9e98593565d650f (patch) | |
tree | 989a45f429b51ade52aec89f45493765bd74b386 /django/utils/module_loading.py | |
parent | 3ff3212713403c5bb8c5b067d2f00d62cf111036 (diff) | |
download | django-2d0db67813d457dc890a2287d9e98593565d650f.tar.gz |
Fixed #20167 -- Preserve the traceback of `ImportError`s in `import_by_path`.
Thanks @carljm for the review.
Diffstat (limited to 'django/utils/module_loading.py')
-rw-r--r-- | django/utils/module_loading.py | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/django/utils/module_loading.py b/django/utils/module_loading.py index 01996743cd..ede585e562 100644 --- a/django/utils/module_loading.py +++ b/django/utils/module_loading.py @@ -3,6 +3,7 @@ import os import sys from django.core.exceptions import ImproperlyConfigured +from django.utils import six from django.utils.importlib import import_module @@ -19,8 +20,10 @@ def import_by_path(dotted_path, error_prefix=''): try: module = import_module(module_path) except ImportError as e: - raise ImproperlyConfigured('%sError importing module %s: "%s"' % ( - error_prefix, module_path, e)) + msg = '%sError importing module %s: "%s"' % ( + error_prefix, module_path, e) + six.reraise(ImproperlyConfigured, ImproperlyConfigured(msg), + sys.exc_info()[2]) try: attr = getattr(module, class_name) except AttributeError: |