[PYTHON] Versuchen Sie, die Remote-Debugging-Funktion von PyCharm zu verwenden

Eine der Verkaufsfunktionen von PyCharm, einer Python-IDE, ist die Remote-Debugging-Funktion. Es ist eine sehr praktische Funktion, aber es gab nicht viele Seiten, auf denen erklärt wurde, wie man sie auf Japanisch verwendet. Daher möchte ich erklären, wie man sie einrichtet und wie man sie bequem verwendet.

Notwendigkeit für Remote-Debugging

Die meisten Fälle, wie einfache Syntaxfehler und Fehler, die jedes Mal auftreten, können durch lokales Debuggen behoben werden. Umgebungsabhängige Fehler und Fehler, die durch bestimmte Benutzerdaten verursacht werden, sind jedoch durch lokales Debuggen schwer zu finden. Ich denke auch, dass es viele Fälle gibt, in denen eine virtuelle Umgebung lokal vorbereitet und dort ausgeführt wird. Remote-Debugging ist in diesem Fall weiterhin wirksam.

Es gibt zwei Arten von Funktionen, die als Remote-Debugging bezeichnet werden. Ich werde sie daher jeweils erläutern.

Python Debug Server-Methode

Dieses Format startet den Debug-Server lokal und greift remote darauf zu.

Fernvorbereitung

Bereiten Sie zunächst die Remote-Umgebung vor. In dem Verzeichnis, in dem Sie PyCharm lokal installiert haben, befindet sich ein Archiv zum Debuggen. Kopieren Sie es daher an einen geeigneten Speicherort auf dem Remoteserver.

scp /Applications/PyCharm.app/Contents/debug-eggs/pycharm-debug.egg user@host:/path/to/pycharm-debug.egg

Übergeben Sie den obigen Dateipfad auf dem Remote-Server. Fügen Sie es der Umgebungsvariablen "PYTHONPATH" hinzu oder fügen Sie den Pfad programmgesteuert zu sys.path hinzu.

Beispiel: Beim Hinzufügen zu sys.path

import sys
sys.path.append('/path/to/pycharm-debug.egg')

Lokale Vorbereitung

Fügen Sie als Nächstes eine Einstellung hinzu, die den lokalen Server aufruft.

import pydevd
pydevd.settrace(192.168.1.1, port=12345, stdoutToServer=True, stderrToServer=True)

Das erste Argument von settrace ist der lokale Hostname (wenn sich Remote und Local in unterschiedlichen Netzwerken befinden, müssen sie in der Lage sein, aufeinander zuzugreifen). Das zweite Argument ist die Portnummer, die lokal abhört.

Die Vorbereitung ist abgeschlossen.

Debug-Ausführung

Starten Sie dann den Server, der lokal zuhört. Wählen Sie in den PyCharm-Einstellungen "Run / Debug Configurations" die Option "Python Remote Debug" über die Schaltfläche + oben links aus.

スクリーンショット 2016-12-19 20.16.58.png

"Lokaler Hostname" ist der lokale Hostname, der im ersten Argument der vorherigen Einstellung festgelegt wurde. Geben Sie für "Port" die im zweiten Argument angegebene Portnummer ein. Drücken Sie OK, legen Sie einen Haltepunkt fest und klicken Sie dann auf die Schaltfläche Debug, um lokal in den Standby-Modus zu wechseln.

Der Remote-Server startet normal mit Runserver usw. Wenn Sie jetzt mit einem Browser usw. auf den Remote-Server zugreifen, können Sie am Haltepunkt anhalten und die Schrittausführung usw. vom lokalen PyCharm aus durchführen.

Ferninterpreter-Methode

Dies ist eine Methode zum Verbinden mit ssh und zum Verwenden eines Remote-Interpreters. Es kann selten verwendet werden. Darüber hinaus scheint diese Methode nur in der kostenpflichtigen Professional Edition verfügbar zu sein.

Aktivieren Sie "SSH Remote Run Plugin" im PyCharm-Einstellungsbildschirm. スクリーンショット 2016-12-19 12.17.27.png

Dann "Einstellungen> Projekt: Server> Projektinterpreter" Klicken Sie auf das Zahnradsymbol neben "Projektinterpreter" und wählen Sie "Remote hinzufügen".

Wählen Sie SSH-Anmeldeinformationen und geben Sie die Informationen ein, um sich mit SSH anzumelden. スクリーンショット 2016-12-19 16.02.34.png

Klicken Sie auf die Schaltfläche neben Pfadzuordnungen, um das lokale Anwendungsverzeichnis und das Remote-Anwendungsverzeichnis hinzuzufügen.

Dadurch wird der Remote-Server-Interpreter zur Interpreter-Liste hinzugefügt, sodass Sie ihn lokal auswählen und ausführen können.

Schließlich

Da die Python Debug Server-Methode pydev ausführt, ist es meiner Meinung nach eine gute Idee, die EIN / AUS-Einstellung einfach umzuschalten und nur bei Bedarf einzuschalten. Das Einrichten ist mühsam, aber es ist eine sehr nützliche Funktion, daher kann ich es nur empfehlen.

Recommended Posts

Versuchen Sie, die Remote-Debugging-Funktion von PyCharm zu verwenden
Versuchen Sie es mit der Vorlagenfunktion von Django
Versuchen Sie es mit der Entwurfsfunktion von Pelican
Versuchen Sie es mit Tkinter
Versuchen Sie es mit Docker-Py
Versuchen Sie es mit PDFMiner
Versuchen Sie es mit Geopandas
Versuchen Sie es mit Selen
Versuchen Sie es mit scipy
Versuchen Sie es mit pandas.DataFrame
Versuchen Sie es mit Django-Swiftbrowser
Versuchen Sie es mit matplotlib
Versuchen Sie es mit tf.metrics
Versuchen Sie es mit PyODE
Versuchen Sie es mit virtualenv (virtualenvwrapper)
[Azure] Versuchen Sie, Azure-Funktionen zu verwenden
Versuchen Sie es jetzt mit virtualenv
Versuchen Sie es mit W & B.
Versuchen Sie es mit Django templates.html
[Kaggle] Versuchen Sie es mit LGBM
Versuchen Sie es mit dem Feed-Parser von Python.
Versuchen Sie es mit Pythons Tkinter
Versuchen Sie es mit Tweepy [Python2.7]
Versuchen Sie es mit Pytorchs collate_fn
Versuchen Sie, PythonTex mit Texpad zu verwenden.
[Python] Versuchen Sie, Tkinters Leinwand zu verwenden
Versuchen Sie es mit Jupyters Docker-Image
Versuchen Sie es mit Scikit-Learn (1) - K-Clustering nach Durchschnittsmethode
Versuchen Sie die Funktionsoptimierung mit Hyperopt
Versuchen Sie es mit Azure Logic Apps
Feature-Erkennung mit opencv (Eckenerkennung)
[Kaggle] Versuchen Sie es mit xg boost
Versuchen Sie es mit der Twitter-API
Versuchen Sie es mit OpenCV unter Windows
Versuchen Sie, Jupyter Notebook dynamisch zu verwenden
Versuchen Sie es mit AWS SageMaker Studio
Versuchen Sie, automatisch mit Selen zu twittern.
Versuchen Sie es mit SQLAlchemy + MySQL (Teil 1)
Versuchen Sie es mit der Twitter-API
Versuchen Sie es mit SQLAlchemy + MySQL (Teil 2)
Versuchen Sie es mit der PeeringDB 2.0-API
Versuchen Sie es mit pytest-Overview und Samples-
Remote-Debugging mit Visual Studio 2017
Versuchen Sie es mit Folium mit Anakonda