我尝试安装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"
我一直在寻找答案,但没有运气。有谁知道这里可能有什么问题?任何帮助将不胜感激。
答案 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
请下载正确的版本。