Opened 12 years ago
Closed 12 years ago
#20167 closed Bug (fixed)
import_by_path should show the original traceback on an ImportError
Reported by: | grampajoe | Owned by: | grampajoe |
---|---|---|---|
Component: | Utilities | Version: | dev |
Severity: | Normal | Keywords: | import utils |
Cc: | Triage Stage: | Unreviewed | |
Has patch: | yes | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | yes | UI/UX: | no |
Description
When django.utils.module_loading.import_by_path encounters an ImportError, it hides the original traceback:
>>> import_by_path('utils_tests.test_module.bad_module.content') Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/home/grampajoe/Projects/django/django/utils/module_loading.py", line 28, in import_by_path error_prefix, module_path, e)) django.core.exceptions.ImproperlyConfigured: Error importing module utils_tests.test_module.bad_module: "No module named a_package_name_that_does_not_exist"
That gives us the original exception message, but the traceback isn't relevant or useful.
I've written a fix using six.reraise at https://github.com/grampajoe/django/tree/import-error-reraise.
Change History (2)
comment:1 by , 12 years ago
Has patch: | set |
---|---|
Owner: | changed from | to
Status: | new → assigned |
comment:2 by , 12 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Note:
See TracTickets
for help on using tickets.
Added a pull request with the fix: https://github.com/django/django/pull/979
Tests passing with SQLite.