Я пытаюсь включить django-каналы в свой следующий проект, но у меня возникают проблемы с отладкой. Я пробовал отладчик pycharms, а также pdb, но он не попадает в точки останова.
Отладка django-каналов
Ответы (3)
Взгляните на панель каналов django. Это плагин для панели инструментов отладки django. Вы можете добавить django-channels-panel к этому, чтобы добавить функциональность отладки канала в ваш проект. Это гарантирует, что вы можете передавать информацию, когда ваше приложение находится в режиме разработки.
https://github.com/Krukov/django-channels-panel
Установка [панель инструментов отладки Django]
pip install django-debug-toolbar
В настройках.py
INSTALLED_APPS = [
# ...
'django.contrib.staticfiles',
# ...
'debug_toolbar',
]
MIDDLEWARE = [
# ...
'debug_toolbar.middleware.DebugToolbarMiddleware',
# ...
]
В urls.py
from django.conf import settings
from django.conf.urls import include, url
if settings.DEBUG:
import debug_toolbar
urlpatterns += [
url(r'^__debug__/', include(debug_toolbar.urls)),
]
Конфигурация
DEBUG_TOOLBAR_PANELS = [
'debug_toolbar.panels.versions.VersionsPanel',
'debug_toolbar.panels.timer.TimerPanel',
'debug_toolbar.panels.settings.SettingsPanel',
'debug_toolbar.panels.headers.HeadersPanel',
'debug_toolbar.panels.request.RequestPanel',
'debug_toolbar.panels.sql.SQLPanel',
'debug_toolbar.panels.staticfiles.StaticFilesPanel',
'debug_toolbar.panels.templates.TemplatesPanel',
'debug_toolbar.panels.cache.CachePanel',
'debug_toolbar.panels.signals.SignalsPanel',
'debug_toolbar.panels.logging.LoggingPanel',
'debug_toolbar.panels.redirects.RedirectsPanel',
]
Установка [панель каналов Django]
pip install django-channels-panel
add 'channels_panel' to your INSTALLED_APPS in settings.py
add 'channels_panel.panel.ChannelsDebugPanel' to your DEBUG_TOOLBAR_PANELS
Добавление PYCHARM_DEBUG=True к переменным среды решило это для меня.
Это добавляет много дополнительных журналов для вывода при запуске отладчика, но кажется, что проблема остается исправленной даже после удаления значения PYCHARM_DEBUG из конфигурации.
Это то, что работает для меня в настоящее время:
В настройках отладки Python убедитесь, что флажок Gevent-совместимость снят.
Я не думаю, что что-то еще нужно. Мои точки останова срабатывают после изменения этого параметра и не срабатывают, когда установлен флажок Gevent-совместимость.