summaryrefslogtreecommitdiff
path: root/django/utils/module_loading.py
diff options
context:
space:
mode:
authorJoe Friedl <joe@joefriedl.net>2013-03-30 21:26:29 -0400
committerSimon Charette <charette.s@gmail.com>2013-03-31 23:00:06 -0400
commit2d0db67813d457dc890a2287d9e98593565d650f (patch)
tree989a45f429b51ade52aec89f45493765bd74b386 /django/utils/module_loading.py
parent3ff3212713403c5bb8c5b067d2f00d62cf111036 (diff)
downloaddjango-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.py7
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: