Persönliche Best Practices für die Python-Entwicklungsumgebung mit VS-Code

Überblick

Beim maschinellen Lernen und bei der Datenanalyse ist es selten, dass die Analyse- / Entwicklungsarbeiten nur mit der vorliegenden Maschine abgeschlossen werden. Ich denke, dass es mit Docker usw. auf einem Remote-Server mit GPU Morimori entwickelt wird.

Ausgehend von VSCode habe ich einen Versuch und Irrtum zur Python-Entwicklung in einer Remote-Umgebung durchgeführt, daher werde ich ihn zusammenfassen.

Ich bin ein Anfänger, der gerade mit der Verwendung von VS Code begonnen hat. Ich würde mich freuen, wenn Sie mir einen Rat geben könnten.

Umgebung

Es ist eine Arbeitsumgebung. Ich glaube nicht, dass es an diese Umgebung gebunden ist.

Was Sie erreichen wollen

Da es sich um eine integrierte Entwicklungsumgebung handelt, möchte ich VSCode auf einem lokalen Computer starten und die Arbeit nur mit lokalem VSCode abschließen.

--SSH-Verbindung vom VS-Code zum Remote-Server

Verfahren

SSH-Verbindung zum Remote-Server

Remote Development Verwenden Sie die Erweiterung. Diese Erweiterung scheint eine Sammlung von Remote-Entwicklungserweiterungen für SSH, Container und WSL zu sein (sie sehen auch bei Installation gleich aus).

Referenz: https://code.visualstudio.com/docs/remote/ssh#_getting-started

Einführung der Erweiterung

Remote Development:https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.vscode-remote-extensionpack

Remote-Server hinzufügen

Öffnen Sie die Befehlspalette und wählen Sie "Remote-SSH: Mit Host verbinden", um eine Auswahlliste der Verbindungen aufzurufen.

スクリーンショット 2020-09-02 16.25.54.png

Wenn Sie hier "Neuen SSH-Host hinzufügen" auswählen, werden Sie aufgefordert, den Befehl shsh einzugeben. Geben Sie daher denselben Befehl wie für die SSH-Verbindung vom Terminal aus ein. Beim ersten Herstellen einer Verbindung erinnere ich mich, dass es nur den Eintrag "Neuen SSH-Host hinzufügen" gab.

スクリーンショット 2020-09-02 16.26.12.png

Geben Sie für die Schlüsselauthentifizierung den Schlüssel mit der Option -i an, wenn Sie den Befehl ssh eingeben.

Diese Einstellungen werden standardmäßig in ~ / .ssh / config geschrieben. Sie können auch Einstellungen für die Portweiterleitung, Einstellungen für Schlüsseldateien usw. direkt schreiben. (Vielleicht einen Host hinzufügen)

Verbindung

Wählen Sie den Remote-Server in der Befehlspalette unter "Remote-SSH: Mit Host verbinden" aus, genau wie beim Hinzufügen des Hosts. Alternativ können Sie darauf zugreifen, indem Sie den Host unter "Remote Explorer" im Kontextmenü auf der linken Seite von VS Code auswählen.

Betreiben Sie den Docker-Container auf dem Remote-Server

Nach dem Herstellen einer Verbindung zum Remote-Server besteht der nächste Schritt darin, eine Verbindung zum Docker-Container herzustellen.

Ich habe auf den folgenden Artikel verwiesen (ich habe ihn nur so verfolgt, wie er ist, also überprüfen Sie bitte die Referenzquelle). Betreiben Sie den Docker-Container auf dem Server mit SSH über VS-Code: https://qiita.com/_kani/items/1ce36e36b0bcda403be2

Container starten

Starten Sie das VSCode-Terminal und starten Sie den Container mit dem Docker-Befehl. Die RemoteDevelopment-Erweiterung verfügt auch über eine Funktion, die vom Starten des Docker-Containers bis zum Verbinden unterstützt. Dies scheint jedoch eine Docker-Operation auf dem lokalen Computer zu sein. Verwenden Sie beim Einrichten eines Containers auf einem Remote-Server den normalen Docker-Befehl (ich konnte es einfach nicht tun?).

Vorbereitung für den Anschluss

Porteinstellungen

Stellen Sie die Portweiterleitung ein. (Ich verstehe nicht wirklich, wie das funktioniert ...)

Öffnen Sie die SSH-Konfiguration. Wenn Sie die Befehlspalette öffnen und "ssh config" usw. eingeben, werden Elemente angezeigt. Wählen Sie sie daher aus.

スクリーンショット 2020-09-02 16.57.32.png

Fügen Sie die Einstellung "LocalForward" zu den entsprechenden Remote-Host-Einstellungen hinzu.

Host 192.168.*******
  HostName 192.168.*******
  IdentityFile ~/.ssh/id_rsa
  User *****
  LocalForward 23750 /var/run/docker.sock

Parametereinstellung der Docker-Erweiterung auf dem Remote-Host

Stellen Sie über VS Code eine Verbindung zum Remote-Host her. Es ist auch erforderlich, die Remote Development-Erweiterung auf dem Remote-Host zu installieren.

Stellen Sie unter Voreinstellung die Parameter wie folgt ein. Wählen Sie auf der Registerkarte Remote aus und suchen Sie nach Docker.host. Es wird angezeigt.

tcp://localhost:23750

スクリーンショット 2020-09-02 17.03.22.png

Sie sind jetzt bereit.

Der Einstellungsbildschirm wird angezeigt, wenn Sie in der Befehlspalette "Einstellungen Benutzereinstellung öffnen" usw. eingeben.

Verbindung

Bedienen Sie über den Remote Explorer in der Seitenleiste. Wenn Sie oben im Pulldown-Menü Container auswählen, wird eine Liste der Container angezeigt. Wählen Sie daher den Container aus, zu dem Sie eine Verbindung herstellen möchten. Stellen Sie mit "An Container anhängen" eine Verbindung zum Container her (ein neues Fenster wird geöffnet).

スクリーンショット 2020-09-02 17.14.00.png

Den Debugger verwenden

Da VSCod eine integrierte Entwicklungsumgebung ist, können Sie interaktiv Haltepunkte festlegen und Fehler beheben. In einer bestimmten Umgebung wurde jedoch bestätigt, dass keine Haltepunkte festgelegt und keine Schritte ausgeführt werden können und das Programm bis zum Ende ausgeführt wird.

Referenz: Problem, das beim Debuggen einer virtuellen Python-Umgebung mit VSCode nicht an einem Haltepunkt endet)

Dies ist ein Problem, aber es scheint, dass die Debugger-Funktion durch Festlegen von Parametern in der Debugger-Einstellungsdatei'launch.json 'aktiviert wird.

Parameter hinzufügen

'launch.json' wird auf dem Editorbildschirm angezeigt, indem Sie den Debugger über das VS Code-Seitenmenü öffnen und die Zahnradmarkierung oben drücken. Fügen Sie dieser JSON-Datei Parameter hinzu.

"stopOnEntry":true

スクリーンショット 2020-09-02 17.26.26.png

Hinweis

Sie müssen vorsichtig mit der Reihenfolge sein, in der Sie stopOnEntry setzen. Als ich es vor "args" stellte, blieb ich eine Weile stecken, als ich auf das Phänomen stieß, dass der Parameter "args" nicht angewendet und das Argument nicht an den Debugger übergeben wurde.

Zusammenfassung

Nach einigem Ausprobieren habe ich mich nun für das obige Verfahren entschieden. Wenn Sie einen besseren Weg kennen, lassen Sie es mich bitte wissen.

Insbesondere mache ich mir Sorgen, dass ich den Mechanismus zum Bedienen des Docker-Containers nicht verstehe.

Recommended Posts

Persönliche Best Practices für die Python-Entwicklungsumgebung mit VS-Code
Persönliche Best Practice zum Einfügen eines Python-Projekts zum Starten einer Befehlszeile in einen Docker-Container
[Zum Organisieren] Python-Entwicklungsumgebung
Persönliche Notizen für die Python-Bildverarbeitung
Optionen für die Python-Entwicklungsumgebung für Mai 2020
Emacs-Einstellungen für die Python-Entwicklungsumgebung
AWS Lambda-Entwicklung Meine Best Practices
Python-Entwicklungsumgebung für macOS mit venv 2016
Best Practices für selbsternannte Raspeye-Remote-Entwicklungseinstellungen
6 Python-Bibliotheken für schnellere Entwicklung und Debugging
Best Practices für die Python App-abhängige Paketverwaltung
Persönliche Best Practices bei der Feinabstimmung mit Chainer
Erstellen einer Python-Entwicklungsumgebung für die KI-Entwicklung
Best Practices für Django views.py und urls.py (?)
Best Practices für den Umgang mit Daten mit Pandas
Bachstelze ist das beste CMS für Python! (Vielleicht)
[Version 2020] Entwicklungsverfahren für Personal Crawler und seine Vorsichtsmaßnahmen
Richten Sie die TinyGo-Entwicklungsumgebung für VS Code ein
Grundlegendes zur Python for Pepper-Entwicklung. -Einführung in Python Box-