Schauen Sie sich PyCharm an . Ich bin seit Jahren ein zufrieden zahlender Kunde, es ist jedoch auch eine kostenlose Community-Edition erhältlich.
Es gibt ein File-Watcher-Plugin , das Dateien auf einen Remote-Computer (Ihr RPi) kopiert. Und es hat die Fähigkeit, Remote-Debugging durchzuführen .
Debugging-Module verkabeln
In Bezug auf das Einrichten des PyCharm-Remote-Debuggens müssen Sie zunächst eine Verbindung herstellen pycharm-debug.egg
. Ich bin auf einem Mac und in meinem Fall ist die Datei bei /Applications/PyCharm.app/Contents/debug-eggs/pycharm-debug.egg
. Ich habe es mit dem folgenden Befehl auf mein RPi kopiert:
scp /Applications/PyCharm.app/Contents/debug-eggs/pycharm-debug.egg pi@mediapi:
Diese Datei muss sich irgendwo in Pythons Pfad befinden, damit sie gefunden werden kann. Ich suchte nach einem geeigneten Ort, indem ich Folgendes ausführte:
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']
Von dieser Liste halte ich /usr/local/lib/python2.7/dist-packages/
es für am besten geeignet (weil es in ist /usr/local
), also:
sudo mv pycharm-debug.egg /usr/local/lib/python2.7/dist-packages/
Und wir brauchen eine .pth
Datei, um sie in den Pfad einzufügen:
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
Überprüfen Sie abschließend das Setup:
pi@mediapi ~ $ python -c 'import pydevd; print pydevd'
<module 'pydevd' from '/usr/local/lib/python2.7/dist-packages/pycharm-debug.egg/pydevd.py'>
Cool, die Debugging-Module sind verkabelt. Weiter zum Debuggen eines Skripts. Ich werde das Listener-Skript debuggen, das ich für diesen Beitrag geschrieben habe .
PyCharm-Setup
Gehen Sie in PyCharm zu Run -> Edit Configurations...
Klicken Sie auf das +
Schild oben links und wählen Sie Python Remote Debug
. Geben Sie ihm einfach einen Namen remote debug
und Sie sind hier fertig. Hit ok.
Klicken Run -> Debug 'remote debug'
Sie nun auf und Sie sehen eine Meldung in der Debug-Konsole.Use the following code to connect to the debugger
Kopieren Sie die Zeilen, in meinem Fall sahen sie folgendermaßen aus:
import pydevd
pydevd.settrace('localhost', port=56112, stdoutToServer=True, stderrToServer=True)
Fügen Sie sie oben in die Datei ein, die Sie debuggen, und speichern Sie die Datei.
Ohne das Dateisynchronisierungs-Plugin zu verwenden, kopiere ich die Dateien mit rsync:
[berto@g6]$ rsync -av ./ pi@mediapi:broadcast/
Beachten Sie nun die Konfiguration sagt localhost
. Der beste Weg, um den Debugger zu verkabeln, ist die Verwendung der SSH-Portweiterleitungsfunktionen, damit sich das RPi auf Ihrem Schreibtisch oder auf der ganzen Welt befindet und auf die gleiche Weise funktioniert. SSH in das RPi mit diesem Befehl, um den Remote-Port mit dem lokalen Port zu verbinden:
[berto@g6]$ ssh -R 56112:localhost:56112 pi@mediapi
PyCharm sollte Ihnen eine Nachricht anzeigen Waiting for process connection...
Führen Sie auf dem RPi das Programm aus, und der Debugger wird aktiviert. Standardmäßig wird er in der Zeile direkt nach der pydevd-Zeile angehalten, die Sie in der Konfiguration ändern können, wenn Sie dies wünschen.
Und an diesem Punkt debuggen Sie aus der Ferne! :) :)