Opened 13 years ago
Closed 13 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 , 13 years ago
| Has patch: | set |
|---|---|
| Owner: | changed from to |
| Status: | new → assigned |
comment:2 by , 13 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.