2015-03-28 20 views
14

Próbuję znaleźć instrukcje, jak włączyć debugowanie PyCharm w moich procesach selekcji na zdalnej maszynie. Na zdalnym komputerze działa Ubuntu 14.04.Jak włączyć zdalne debugowanie selera w PyCharm?

Używam PyCharm 4.x.

Widziałem kilka innych informacji, które mówią, że inne działają, ale nie udało im się znaleźć odpowiednich instrukcji.

Odpowiedz

20

Możesz mieć Run Configuration do uruchamiania swoich pracowników celery, który następnie pozwala na debugowanie po prostu klikając przycisk debug. Oto jak ja, że ​​ustanowiony w pycharm 5:

pycharm celery

Musisz skonfigurować zdalne interpreter Pythona, a następnie ustawić inne pliki konfiguracyjne, takie jak na powyższym zdjęciu. Należy zauważyć, że Working directory wskazuje folder bin zdalnego tłumacza z zainstalowanym celery.

5

Wystarczy dodać następujące config:

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

Takie postępowanie sprawia, seler wykonać w tym samym wątku jako wątku aktualnie wykonującego.

0

Moja konfiguracja robocza:

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

    • Gdzie -B jest celerybeet, -n jest nazwa węzła, -Q to nazwa kolejki, -l to poziom logowania, an d --app to nazwa aplikacji, aplikacja django z selerem.py obok pliku settings.py w moim przypadku.
  • katalog roboczy: /home/app/server/ czyli moim django folderu głównego

0

Niestety, większość rozwiązań nie działa w systemie Windows. (Dotyczyło to konkretnie separate question, ale niestety został zamknięty jako duplikat tego.) Tak więc odpowiem teraz na to pytanie.)

Problem polega na tym, że w systemie Windows samodzielne polecenie selera jest serią plik, więc PyCharm nie może dołączyć do niego debugera Pythona.

Aż do Seler 3.x można utworzyć konfigurację uruchamiania manage.py i wywołać na niej polecenie celery worker.

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

pamiętać, że nie ma potrzeby ustawiania --app tutaj, ponieważ aplikacja jest definiowana przez polecenie zarządzania poprzez DJANGO_SETTINGS_MODULE.

Niestety, polecenie zarządzania celery było funkcją biblioteki django-celery, która nie jest obsługiwana przez program Celery 4.x. Na razie nie znalazłem rozwiązania dla Selera 4.x.