2015-03-28 12 views
14

Sto cercando di trovare alcune istruzioni su come abilitare il debug di PyCharm all'interno dei miei processi di sedimentazione su una macchina remota. La macchina remota sta eseguendo Ubuntu 14.04.Come abilitare il debug remoto di sedani in PyCharm?

Sto eseguendo PyCharm 4.x.

Ho visto qualche altra informazione che allude agli altri ha funzionato, ma non sono stato in grado di individuare le istruzioni adeguate.

risposta

20

È possibile avere un Run Configuration per eseguire gli operatori celery che consente di eseguire il debug semplicemente facendo clic sul pulsante debug. Ecco come ho impostato che fino a PyCharm 5:

pycharm celery

È necessario impostare un interprete python remota e quindi impostare altre configurazioni, come l'immagine qui sopra. Si noti che Working directory punta alla cartella bin dell'interprete remoto con celery installato.

5

Basta aggiungere la seguente configurazione:

from celery import current_app 
current_app.conf.CELERY_ALWAYS_EAGER = True 
current_app.conf.CELERY_EAGER_PROPAGATES_EXCEPTIONS = True 

In questo modo rende il sedano eseguire nello stesso thread come filo attualmente in esecuzione.

0

La mia configurazione di lavoro:

  • Script: /home/app/env/bin/celery
  • Scrittura parametri: worker -B -n qrc -Q qrc -l info --app=backend.celery

    • Dove -B è per celerybeet, -n è il nome del nodo, -Q è il nome della coda, -l è il livello di registrazione, a d --app è il nome dell'app, un'app django con celery.py accanto a settings.py nel mio caso.
  • Directory di lavoro: /home/app/server/ vale a dire il mio Django cartella principale

0

Purtroppo, la maggior parte delle soluzioni non funzionano su Windows. (C'era uno separate question specificamente su questo, ma sfortunatamente è stato chiuso come duplicato di questo. Quindi risponderò a questa domanda qui.)

Il problema è che su Windows, il comando autonomo di sedano è un batch file, quindi PyCharm non può collegare il debugger Python ad esso.

Fino a Celery 3.x, è possibile creare una configurazione di esecuzione manage.py e chiamare il comando celery worker su di esso.

Screenshot of PyCharm run configuration for running manage.py celery worker

Si noti che non è necessario impostare --app qui, come l'applicazione è definito dal comando di gestione via DJANGO_SETTINGS_MODULE.

Sfortunatamente, il comando di gestione celery era una funzionalità della libreria django-celery, che non è supportata da Celery 4.x. Fino ad ora, non ho trovato una soluzione per Celery 4.x.