Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Difficulty installing Django Debug Toolbar

I tried to install Django Panels and ran into an error. I installed using pip -- pip install django-debug-toolbar -- and it seemed to go alright. But when I added it to my project like this:

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.staticfiles',
    'django.contrib.sites',
    'django.contrib.admin',
    'django.contrib.flatpages',
    'coltrane',
    'markdown',
    'debug_toolbar',
)

and then ran python manage.py syncdb got the following error:

python manage.py syncdb
Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/usr/local/Cellar/python/2.7.6/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Django-1.7.dev20140121103749-py2.7.egg/django/core/management/__init__.py", line 427, in execute_from_command_line
    utility.execute()
  File "/usr/local/Cellar/python/2.7.6/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Django-1.7.dev20140121103749-py2.7.egg/django/core/management/__init__.py", line 391, in execute
    django.setup()
  File "/usr/local/Cellar/python/2.7.6/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Django-1.7.dev20140121103749-py2.7.egg/django/__init__.py", line 21, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/usr/local/Cellar/python/2.7.6/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Django-1.7.dev20140121103749-py2.7.egg/django/apps/registry.py", line 105, in populate
    app_config.import_models(all_models)
  File "/usr/local/Cellar/python/2.7.6/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Django-1.7.dev20140121103749-py2.7.egg/django/apps/base.py", line 160, in import_models
    self.models_module = import_module(models_module_name)
  File "/usr/local/Cellar/python/2.7.6/Frameworks/Python.framework/Versions/2.7/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
  File "/usr/local/Cellar/python/2.7.6/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/debug_toolbar/models.py", line 10, in <module>
    from debug_toolbar.middleware import DebugToolbarMiddleware
  File "/usr/local/Cellar/python/2.7.6/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/debug_toolbar/middleware.py", line 13, in <module>
    from debug_toolbar.toolbar import DebugToolbar
  File "/usr/local/Cellar/python/2.7.6/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/debug_toolbar/toolbar.py", line 153, in <module>
    urlpatterns = DebugToolbar.get_urls()
  File "/usr/local/Cellar/python/2.7.6/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/debug_toolbar/toolbar.py", line 147, in get_urls
    for panel_class in cls.get_panel_classes():
  File "/usr/local/Cellar/python/2.7.6/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/debug_toolbar/toolbar.py", line 125, in get_panel_classes
    (panel_module, e))
django.core.exceptions.ImproperlyConfigured: Error importing debug panel debug_toolbar.panels.signals: "cannot import name WEAKREF_TYPES"

I've searched around for answers to this but with no luck. Does anyone know what might be wrong here? Any help would be greatly appreciated.

like image 716
fraxture Avatar asked Feb 17 '26 04:02

fraxture


1 Answers

The problem is specifically with the signals debug panel. Apparently Django 1.7 incorporates a lot of changes to the signals library that are specifically incompatible with the debug toolbar.

You can run DDT on Django 1.7 if you disable the panel. Easy enough to do with a change to your settings.py:

DEBUG_TOOLBAR_PANELS = [
    'debug_toolbar.panels.version.VersionDebugPanel',
    'debug_toolbar.panels.timer.TimerDebugPanel',
    'debug_toolbar.panels.settings_vars.SettingsVarsDebugPanel',
    'debug_toolbar.panels.headers.HeaderDebugPanel',
    'debug_toolbar.panels.request_vars.RequestVarsDebugPanel',
    'debug_toolbar.panels.sql.SQLDebugPanel',
    'debug_toolbar.panels.template.TemplateDebugPanel',
    'debug_toolbar.panels.cache.CacheDebugPanel',
    #'debug_toolbar.panels.signals.SignalDebugPanel',
    'debug_toolbar.panels.logger.LoggingPanel',
    'debug_toolbar.panels.profiling.ProfilingDebugPanel',
]

If you need signal inspection, you can backport WEAKREF_TYPES from Django 1.6 django.dispatch.dispatcher into your environment and update debug_toolbar.panels.signals with the appropriate dependencies. This took me about ten minutes, but I threw that solution away when I discovered I could just disable the problem panel.

like image 58
Condiment Avatar answered Feb 18 '26 17:02

Condiment



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!