Sprawdź PyCharm . Od lat jestem szczęśliwym klientem płacącym, ale dostępna jest również bezpłatna edycja społeczności .
Istnieje wtyczka obserwatora plików , która kopiuje pliki na komputer zdalny (twoje RPi). Ma także możliwość zdalnego debugowania .
podłącz moduły debugujące
Jeśli chodzi o konfigurowanie zdalnego debugowania PyCharm, pierwszą rzeczą do zrobienia jest połączenie pycharm-debug.egg
. Jestem na komputerze Mac iw moim przypadku plik znajduje się na /Applications/PyCharm.app/Contents/debug-eggs/pycharm-debug.egg
. Skopiowałem go do mojego RPi za pomocą polecenia:
scp /Applications/PyCharm.app/Contents/debug-eggs/pycharm-debug.egg pi@mediapi:
Ten plik musi znajdować się gdzieś na ścieżce Pythona, aby można go było znaleźć. Szukałem odpowiedniego miejsca, uruchamiając następujące czynności:
pi@mediapi ~ $ python -c 'import sys; print sys.path'
['', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-linux2', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages', '/usr/lib/pymodules/python2.7']
Z tej listy uważam, że /usr/local/lib/python2.7/dist-packages/
jest najbardziej odpowiedni (ponieważ jest w środku /usr/local
), więc:
sudo mv pycharm-debug.egg /usr/local/lib/python2.7/dist-packages/
Potrzebujemy .pth
pliku, aby wstrzyknąć go do ścieżki:
pi@mediapi ~ $ echo /usr/local/lib/python2.7/dist-packages/pycharm-debug.egg | sudo tee -a /usr/local/lib/python2.7/dist-packages/pycharm-debug.pth
Na koniec sprawdź konfigurację:
pi@mediapi ~ $ python -c 'import pydevd; print pydevd'
<module 'pydevd' from '/usr/local/lib/python2.7/dist-packages/pycharm-debug.egg/pydevd.py'>
Fajnie, moduły debugujące są podłączone. Włączone do debugowania skryptu. Mam zamiar debugować skrypt słuchacza, który napisałem dla tego postu .
Konfiguracja PyCharm
W PyCharm przejdź do Run -> Edit Configurations...
Naciśnij +
znak w lewym górnym rogu i wybierz Python Remote Debug
. Po prostu nadaj mu nazwę remote debug
i gotowe! naciśnij OK.
Teraz kliknij, Run -> Debug 'remote debug'
a zobaczysz komunikat w konsoli debugowania,Use the following code to connect to the debugger
Skopiuj linie, w moim przypadku wyglądały tak:
import pydevd
pydevd.settrace('localhost', port=56112, stdoutToServer=True, stderrToServer=True)
Wklej je u góry debugowanego pliku i zapisz plik.
Bez użycia wtyczki synchronizacji plików kopiuję pliki za pomocą rsync:
[berto@g6]$ rsync -av ./ pi@mediapi:broadcast/
Teraz zauważ, że konfiguracja mówi localhost
. Najlepszym sposobem na podłączenie debuggera jest skorzystanie z funkcji przekierowania portów SSH, dzięki czemu RPi może znajdować się na biurku lub na całym świecie i działa w ten sam sposób. SSH do RPi za pomocą tego polecenia, aby połączyć port zdalny z portem lokalnym:
[berto@g6]$ ssh -R 56112:localhost:56112 pi@mediapi
PyCharm powinien pokazać ci wiadomość Waiting for process connection...
Na RPi uruchom program, a zobaczysz, jak uruchamia się debugger. Domyślnie zatrzymuje się on na linii zaraz za linią pydevd, którą możesz zmienić w konfiguracji, jeśli chcesz.
W tym momencie zdalnie debugujesz! :)