难以安装Django调试工具栏

时间:2014-01-26 04:17:45

标签: django django-debug-toolbar

我尝试安装Django Panels并遇到错误。我使用pip安装 - pip install django-debug-toolbar - 它似乎没问题。但是当我将它添加到我的项目中时:

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',
)

然后运行python manage.py syncdb出现以下错误:

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"

我一直在寻找答案,但没有运气。有谁知道这里可能有什么问题?任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:10)

问题特别在于信号调试面板。显然,Django 1.7对信号库进行了大量更改,这些更改与调试工具栏特别不兼容。

如果禁用面板,可以在Django 1.7上运行DDT。很容易改变你的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',
]

如果需要信号检查,可以将WEAKREF_TYPES从Django 1.6 django.dispatch.dispatcher向后移植到您的环境中,并使用相应的依赖项更新debug_toolbar.panels.signals。这花了我大约十分钟,但当我发现我可以禁用问题面板时,我把这个解决方案扔掉了。

答案 1 :(得分:2)

如评论in the issue,Django 1.7上的调试工具栏问题似乎在版本1.1和django-debug-toolbar(我自己测试过1.1和1.2.1)中得到解决。

请尝试升级并查看问题是否自行解决

答案 2 :(得分:0)

您正在使用django Django-1.7.dev20140121103749的开发版本,该版本仅用于测试而非用于生产用途。这就是导入无效的原因。

您需要使用最新的发布版本的django,即1.6.1

请下载正确的版本。