#21443 closed Bug (fixed)
On PY3 if error on import, cannot show debug info
| Reported by: | Bouke Haarsma | Owned by: | Bouke Haarsma |
|---|---|---|---|
| Component: | Python 3 | Version: | 1.6 |
| Severity: | Normal | Keywords: | |
| Cc: | Triage Stage: | Accepted | |
| Has patch: | yes | Needs documentation: | no |
| Needs tests: | no | Patch needs improvement: | no |
| Easy pickings: | no | UI/UX: | no |
Description
Traceback (most recent call last):
File "/django/core/urlresolvers.py", line 339, in urlconf_module
return self._urlconf_module
AttributeError: 'RegexURLResolver' object has no attribute '_urlconf_module'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/django/core/handlers/base.py", line 101, in get_response
resolver_match = resolver.resolve(request.path_info)
File "/django/core/urlresolvers.py", line 318, in resolve
for pattern in self.url_patterns:
File "/django/core/urlresolvers.py", line 346, in url_patterns
patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
File "/django/core/urlresolvers.py", line 341, in urlconf_module
self._urlconf_module = import_module(self.urlconf_name)
File ".virtualenv/python3.3/importlib/__init__.py", line 90, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1586, in _gcd_import
File "<frozen importlib._bootstrap>", line 1567, in _find_and_load
File "<frozen importlib._bootstrap>", line 1534, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 586, in _check_name_wrapper
File "<frozen importlib._bootstrap>", line 1024, in load_module
File "<frozen importlib._bootstrap>", line 1005, in load_module
File "<frozen importlib._bootstrap>", line 562, in module_for_loader_wrapper
File "<frozen importlib._bootstrap>", line 870, in _load_module
File "<frozen importlib._bootstrap>", line 313, in _call_with_frames_removed
...
ImportError: cannot import name urlencode
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/Cellar/python3/3.3.2/Frameworks/Python.framework/Versions/3.3/lib/python3.3/wsgiref/handlers.py", line 137, in run
self.result = application(self.environ, self.start_response)
File "/django/contrib/staticfiles/handlers.py", line 67, in __call__
return self.application(environ, start_response)
File "/django/core/handlers/wsgi.py", line 206, in __call__
response = self.get_response(request)
File "/django/core/handlers/base.py", line 196, in get_response
response = self.handle_uncaught_exception(request, resolver, sys.exc_info())
File "/django/core/handlers/base.py", line 231, in handle_uncaught_exception
return debug.technical_500_response(request, *exc_info)
File "/django/views/debug.py", line 69, in technical_500_response
html = reporter.get_traceback_html()
File "/django/views/debug.py", line 323, in get_traceback_html
c = Context(self.get_traceback_data())
File "/django/views/debug.py", line 281, in get_traceback_data
frames = self.get_traceback_frames()
File "/django/views/debug.py", line 428, in get_traceback_frames
pre_context_lineno, pre_context, context_line, post_context = self._get_lines_from_file(filename, lineno, 7, loader, module_name)
File "/django/views/debug.py", line 379, in _get_lines_from_file
source = loader.get_source(module_name)
File "<frozen importlib._bootstrap>", line 607, in _requires_frozen_wrapper
ImportError: importlib._bootstrap is not a frozen module
There is an error in my views somewhere, which are being imported as part of my urls.py. The import of the urls fails, and should display an error message. However this cryptic message is shown in the terminal and I have to sift through non-relevant stack traces to get to the real problem.
Change History (10)
comment:1 by , 12 years ago
comment:2 by , 12 years ago
| Component: | Uncategorized → Python 3 |
|---|---|
| Triage Stage: | Unreviewed → Accepted |
| Type: | Uncategorized → Bug |
comment:3 by , 12 years ago
| Has patch: | set |
|---|
PR: https://github.com/django/django/pull/1948
The fix should probably also be backported to 1.6, as it will bite every user running Django on PY3 while working on a project's code.
comment:4 by , 12 years ago
I cannot reproduce on Python 3.2, I suppose this is specific to Python 3.3?
comment:5 by , 12 years ago
Cccording to tox it seems to manifest on Python 3.3 only:
ERROR: py33-sqlite: commands failed py32-sqlite: commands succeeded py27-sqlite: commands succeeded
Python 3.3 (like 3.2) is installed on OS X using Homebrew.
follow-up: 8 comment:6 by , 12 years ago
| Owner: | changed from to |
|---|---|
| Status: | new → assigned |
I've also just run into this issue. I'm running Django 1.6, with Python 3.3, Apache 2.4.6 with mod_wsgi, on Ubuntu Server 13.04.
comment:7 by , 12 years ago
| Owner: | changed from to |
|---|
comment:8 by , 12 years ago
Replying to productions@…:
I've also just run into this issue. I'm running Django 1.6, with Python 3.3, Apache 2.4.6 with mod_wsgi, on Ubuntu Server 13.04.
I can confirm the above patch provided by bourke does solve the issue on my implementation.
comment:9 by , 12 years ago
| Resolution: | → fixed |
|---|---|
| Status: | assigned → closed |
When I change line 379 to the below, I get a normal debug view with stack trace.
try: source = loader.get_source(module_name) except ImportError: source = None