Как включить удаленную отладку сельдерея в PyCharm?
Я пытаюсь найти некоторые инструкции о том, как включить отладку PyCharm в моих процессах сельдерея на удаленной машине. На удаленном компьютере работает Ubuntu 14.04.
Я запускаю PyCharm 4.x.
Я видел другую информацию, которая ссылается на то, что другие работают, но не смогли найти правильные инструкции.
Ответы
Ответ 1
У вас может быть Run Configuration
для запуска ваших работников celery
, который затем позволяет вам отлаживать просто, нажав кнопку debug
. Вот как я установил это в PyCharm 5:
![pycharm celery]()
Вам нужно настроить удаленный интерпретатор python, а затем установить другие конфигурации, как показано выше. Обратите внимание, что Working directory
указывает на папку bin
удаленного интерпретатора с установленным celery
.
Ответ 2
Просто добавьте следующую конфигурацию:
from celery import current_app
current_app.conf.CELERY_ALWAYS_EAGER = True
current_app.conf.CELERY_EAGER_PROPAGATES_EXCEPTIONS = True
Таким образом, сельдерей выполняется в том же потоке, что и текущий исполняемый поток.
Ответ 3
К сожалению, большинство решений не работают в Windows. (Был отдельный вопрос конкретно об этом, но, к сожалению, он был закрыт как дубликат этого. Поэтому я сейчас отвечу на этот вопрос.)
Проблема в том, что в Windows автономная команда celery представляет собой командный файл, поэтому PyCharm не может подключить к нему отладчик Python.
Вплоть до Celery 3.x вы можете создать конфигурацию запуска manage.py
и вызвать для нее команду celery worker
.
![Screenshot of PyCharm run configuration for running manage.py celery worker]()
Обратите внимание, что вам не нужно устанавливать здесь --app
, поскольку приложение определяется командой управления через DJANGO_SETTINGS_MODULE
.
К сожалению, команда управления celery
была функцией библиотеки django-celery
, которая не поддерживается в Celery 4.x. На данный момент я не нашел решения для Celery 4.x.
Ответ 4
Моя рабочая конфигурация:
Ответ 5
Я использую PyCharm 2017 и должен был сделать что-то очень похожее на ответы выше, но я специально должен был указать полный/абсолютный путь к celery
в поле "Сценарий"
Кроме того, я не уверен, имеет ли PyCharm 4 эту функцию, но более новые версии позволяют напрямую подключаться к работающему процессу python, выбрав "Выполнить"> "Присоединить к локальному процессу"...
Это позволяет вам запускать сельдерей, каким вы были раньше (возможно, в терминале), а затем позволить Pycharm вступить во владение
Ответ 6
в Windows добавьте следующие параметры в вашу отладочную конфигурацию в Pycharm
-A YouAppName worker --loglevel=debug -P solo --without-gossip --without-mingle --without-heartbeat