
Kurzanleitung: So konfigurieren Sie PyCharm, damit der Code über einen SSH-Remote-Interpreter auf einer GCP-Instanz läuft
Was wollen wir erreichen?
Code lokal auf dem Notebook schreiben, ihn aber auf einer Google-Cloud-Maschine mit mehr RAM und CPU ausführen.
Bei der Entwicklung einer Python-Anwendung ist es oft praktisch, den Code auf einer GCP-Instanz (AI Notebook / Google Compute Engine) laufen zu lassen. Das lohnt sich besonders bei Machine-Learning- (ML) oder Datenverarbeitungs-Code, der häufig eine leistungsstarke Maschine mit mehreren CPUs und viel RAM voraussetzt.
Ein weiterer Vorteil: Wenn der Code remote läuft, authentifiziert er sich gegenüber anderen Diensten der Google Cloud Platform automatisch über den Service Account der Instanz. Nach Abschluss dieses Tutorials nutzen Sie PyCharm vom Mac aus, während der Code auf einer GCP-VM ausgeführt wird.
Voraussetzungen
Für den Einstieg brauchen Sie:
- PyCharm Pro auf Ihrem Mac- oder Linux-Rechner
- einen aktiven GCP-Account
Los geht’s
Schritt 1: SSH-Schlüssel auf dem Mac einrichten [1]
Erzeugen Sie mit folgendem Befehl im Terminal Ihres Mac- oder Linux-Rechners ein neues SSH-Schlüsselpaar:
ssh-keygen -t rsa -f ~/.ssh/[KEY_FILENAME]
Ich habe auf eine Passphrase verzichtet und den Schlüssel temp_key genannt.
Public Key formatieren
Geben Sie den Inhalt des öffentlichen Schlüssels mit folgendem Befehl aus:
cat ./ssh/temp_key.pubKopieren Sie den Inhalt in die Zwischenablage – ab "ssh-rsa" (inklusive) bis zum Gleichheitszeichen "=" (vor dem Benutzernamen).

Öffnen Sie einen beliebigen Texteditor und bringen Sie den Schlüssel in folgendes Format:
ssh-rsa [KEY VALUE]= [USER_NAME]Diesen Text brauchen Sie gleich noch.
Schritt 2: VM in GCP anlegen oder bearbeiten
Jetzt brauchen Sie eine Maschine in der Cloud. Ich greife gerne zu AI Notebooks, weil diese Maschinen mit einer vorinstallierten AI-Python-Umgebung kommen, die zahlreiche Bibliotheken für Data Science, ML und die Google Cloud mitbringt. Wie Sie ein Notebook anlegen, zeigt diese Anleitung.
Beachten Sie: AI Notebooks (heute Teil von Vertex AI) erstellen im Hintergrund eine Compute-Engine-Instanz. Sowohl bei einer reinen Compute-Engine-Instanz als auch bei einem AI Notebook müssen Sie die Konfiguration anschließend bearbeiten, um den Remote-Zugriff per SSH freizuschalten. Erst dann kann PyCharm Dateien auf die Maschine kopieren und sich mit dem Python-Interpreter verbinden.
Maschine eines AI Notebooks bearbeiten
Die Notebook-Instanz "my-instance" hat folgende Eigenschaften:

Über "VIEW VM DETAILS" und anschließend "EDIT" passen Sie die Spezifikation der Compute Engine an, auf der das AI Notebook läuft. Scrollen Sie zu "SSH Keys" und klappen Sie das Dropdown "show and edit" auf.

Klicken Sie auf "Add item", fügen Sie den formatierten SSH-Schlüssel ein und ergänzen Sie am Ende einen Benutzernamen. Hat alles geklappt, erscheint Ihr Benutzername links neben dem Schlüssel.

Sie können der Maschine zusätzlich eine statische externe IP-Adresse zuweisen, damit sich die öffentliche IP bei jedem Neustart nicht ändert.
Schritt 3: PyCharm einrichten!
Ihre Maschine akzeptiert jetzt SSH-Verbindungen über das eben erstellte Schlüsselpaar. Bleibt nur noch, PyCharm das Deployen und Ausführen des Codes auf dieser Remote-Maschine zu erlauben. Kopieren Sie dazu die externe IP-Adresse der Maschine. Sie steht in den Details der VM, sobald diese läuft.

Öffnen Sie nun PyCharm > Preferences > Project:[name] > Python interpreter > Zahnrad-Symbol > add.

Tragen Sie unter "Host" die externe IP-Adresse der Maschine ein und unter "Username" den Benutzernamen, den Sie beim Erstellen des Schlüssels verwendet haben. Mit "Next" weisen Sie PyCharm an, die Verbindung zur VM aufzubauen. Anschließend geben Sie die korrekten Verbindungsdaten ein.

Verweisen Sie unter "private key file" auf den Pfad des privaten SSH-Schlüssels (in unserem Fall /[user]/.ssh/temp_key – also die Datei ohne die Endung .pub).
Klicken Sie auf "Next" – fertig! Unten rechts im Fenster sehen Sie, dass der Interpreter jetzt Ihre Remote-Python-Umgebung ist. Beim ersten Mal kann es ein paar Minuten dauern, bis die PyCharm-Hilfsdateien auf die Remote-Maschine kopiert und die Python-Umgebungen synchronisiert sind.

Fortgeschritten: Mehrere Python-Umgebungen
Manchmal ist auf der Remote-Maschine mehr als eine Python-Umgebung installiert – etwa eine Conda-Umgebung auf Ihrem AI Notebook. Welche davon zum Einsatz kommt, legen Sie über die Konfiguration des Remote-Interpreters fest.
Öffnen Sie die Interpreter-Einstellungen über das Menü unten rechts in PyCharm:

Bearbeiten Sie erneut die Einstellungen Ihres bestehenden Interpreters:

Tragen Sie unter "python interpreter path" den Pfad Ihrer Python-Installation auf der Remote-Maschine ein.

Zusammenfassung
Ergänzend zu dieser Anleitung möchte ich Ihnen noch zwei Quellen ans Herz legen. Tieferes Wissen zur fortgeschrittenen Einrichtung des Python-Interpreters in PyCharm liefert diese Anleitung von JetBrains. Wenn Sie sich für die erweiterte Konfiguration Ihres SSH-Schlüssels auf GCP-Instanzen interessieren, werfen Sie einen Blick in diese Ressource.
Bleiben Sie produktiv!
Danke fürs Lesen! Bleiben Sie mit uns in Kontakt – im DoiT Engineering Blog , auf dem DoiT LinkedIn-Kanal und auf dem DoiT Twitter-Kanal . Karrieremöglichkeiten finden Sie unter https://careers.doit.com .