[PYTHON] Verwenden Sie einen AWS-Interpreter mit Pycharm

Dinge die zu tun sind

Entwickeln Sie mit lokalem Pycharm mithilfe des AWS-Instanzinterpreters!

Hintergrund

Wenn es äußerst schwierig ist, ein bestimmtes Modul zu installieren, ist es sehr einfach, den bereits installierten AWS AMI- oder Docker-Container zu verwenden. Ich möchte jedoch mit einer IDE wie pycharm codieren, daher ist es etwas schwierig, den Server zu betreten und mit vim zu entwickeln. .. Mit pycharm habe ich eine Funktion gefunden, mit der ich mich mit dem Interpreter dieses Servers bei einem Server mit Remote und Code anmelden kann. Daher werde ich es versuchen und eine Notiz schreiben.

Umgebung

Methode

1 Drücken Sie in den Pycharm-Interpreter-Einstellungen auf Remote hinzufügen.

Klicken Sie auf Pycharm-Einstellungen-> Projekt: hoge-> Projektinterpreter. Der folgende Bildschirm wird angezeigt. Klicken Sie auf das Zahnrad in der oberen rechten Ecke スクリーンショット 2017-05-04 16.22.06.png Das folgende Fenster wird angezeigt. Drücken Sie also "Remote hinzufügen". スクリーンショット 2017-05-04 16.37.16.png

2 SSH-Einstellungen

Wenn Sie Add Remote hinzufügen drücken, wird Configure of the Interpreter angezeigt. Wenn Sie also SSH Credentials drücken, wird der folgende Einstellungsbildschirm angezeigt. スクリーンショット 2017-05-04 16.22.29.png

Geben Sie hier jeweils Folgendes an.

Das ist in Ordnung. Abhängig von der AMI kann die Arbeitsumgebung gelegentlich als Root-Benutzer anstelle eines allgemeinen Benutzers wie ec2-user erstellt werden. In diesem Fall spiele ich also mit sshd_config und dem öffentlichen Schlüssel.

# sshd_Ändern Sie die Konfiguration
vi /etc/ssh/sshd_config
# PermitRootLogin forced-commands-nur unten.
PermitRootLogin without-password

#Kopie des öffentlichen Schlüssels
mv /root/.ssh/authorized_keys /root/.ssh/authorized_keys_bak
cp -f /home/ec2-user/.ssh/authorized_keys /root/.ssh/authorized_keys
service sshd reload

Ich habe bisher geschrieben, aber ich habe festgestellt, dass diese Funktion ziemlich nervig ist. .. Erstens kann es nur ausgeführt werden, wenn der lokale Pfad auf der Remote-Seite vorhanden ist. Vielleicht ist es richtig, diese Funktion zu verwenden, indem Sie das, was lokal geschrieben wurde, so wie es ist auf die Fernbedienung hochladen? Dann gibt es einige Module, die aus irgendeinem Grund nicht importiert werden können. Ich benutze Caffe, aber Import Caffe sagt, dass dies nicht der Fall ist. Es gibt kein Pycaffe unter Anakonda, daher muss ich es möglicherweise auf Anakonda verschieben.

Hmmm, kann ich damit eine Quelle mit einer lokalen IDE erstellen, die keinen Importfehler ausgibt, und sie auslösen? ?? Wunder. .. Ich bin ziemlich traurig, dass ich nicht debuggen kann. .. .. Ich werde das obige Problem untersuchen, wenn freie Kapazität vorhanden ist.

Nachtrag

Ich habe die Entsprechung zwischen lokalen und Remote-Pfaden und die automatische Upload-Funktion bemerkt und sie hinzugefügt.

So ordnen Sie lokal und remote zu

1 Klicken Sie auf "RUN" auf der oberen Registerkarte auf "Configration bearbeiten". 2 Klicken Sie auf die rechte Seite der Pfadzuordnung. 3 Legen Sie den lokalen Pfad und den Remote-Pfad fest. das ist alles.

Automatische Upload-Methode

Selbst wenn Sie es zuordnen, ist die Arbeit lokal, sodass Sie die geänderte Quelle einzeln in AWS hochladen müssen. So laden Sie die von lokalem Pycharm geänderte Quelle automatisch in AWS hoch. 1 Drücken Sie unter Einstellungen-> Bereitstellung die Taste +. 2 Wählen Sie SFTP aus und geben Sie das globale IP-Root-Pfad = "/" an. Sie können Dateien durchsuchen auf dem Server unverändert lassen. 3 Ändern Sie unter Einstellungen-> Bereitstellung-> Optionen die Option Geänderte Dateien automatisch hochladen ... in Immer und geben Sie Standardberechtigungen für Dateien überschreiben an: wie alle Berechtigungen. das ist alles.

Jetzt können Sie lokal mit pycharm codieren und es mit sofortiger Reflexion über AWS entwickeln. Sie können auch debuggen. Toll.

Bei Verwendung von Cuda

Möglicherweise liegt ein Fehler vor, da für das lib-System von cuda kein Pfad vorhanden ist. In diesem Fall legen Sie unter Umgebungsvariable in Ausführungskonfigurationen Folgendes fest.

LD_LIBRARY_PATH /usr/local/cuda/lib64:$LD_LIBRARY_PATH

Bei Verwendung des Remote-Interpreters wird im Debug ": Verbindung zum X-Server kann nicht hergestellt werden" angezeigt und ein Fehler tritt auf.

Ich weiß es nicht genau, aber es scheint einen Fehler zu verursachen, wenn Xcode nicht auf dem Server verwendet werden kann. Daher sind Arbeiten erforderlich, um den lokalen Xcode zu vervollständigen.

  1. Stellen Sie eine Verbindung von lokal wie folgt her.
ssh -Y username@ipaddress

Überprüfen Sie bei Verbindung von 2.1 den Inhalt von DISPLAY mit dem folgenden Befehl.

echo $DISPLAY
> localhost:10.0
  1. Stellen Sie den Inhalt von 2 in der Umgebungsvariablen von pycharm ein.
DISPLAY localhost:10.0

Führen Sie das Debuggen mit pycharm mit der Verbindung von 4.1 aus. OK.

Wenn Sie das Tensorboard usw. in der Cloud wie AWS überprüfen möchten, der Port jedoch nicht freigegeben ist

Wenn Sie eine Verbindung vom lokalen Standort wie folgt herstellen, geben Sie den auf dem Server zu verwendenden Port als 9999 an und stellen Sie mit localhost eine Verbindung zum lokalen Browser her: 8888, der Zugriff wird auf 9999 weitergeleitet und angezeigt. ..

ssh -L 8888:localhost:9999 user@pablic_ip

Recommended Posts

Verwenden Sie einen AWS-Interpreter mit Pycharm
Verwendung von Cmder mit PyCharm (Windows)
PyCharm Remote Interpreter von SSH (WSL2, venv, pyenv)
Verwenden Sie Python im Docker-Container als Pycharm-Interpreter
Verwenden Sie mecab-ipadic-neologd mit igo-python
Verwenden Sie RTX 3090 mit PyTorch
Verwenden Sie ansible mit cygwin
Verwenden Sie pipdeptree mit virtualenv
[Python] Verwenden Sie JSON mit Python
Verwenden Sie Mock mit Pytest
Verwenden Sie den Indikator mit pd.merge
Verwenden Sie Gentelella mit Django
Verwenden Sie Mecab mit Python 3
Verwenden Sie Tensorboard mit Chainer
Verwenden Sie DynamoDB mit Python
Verwenden Sie Python 3.8 mit Anaconda
Verwenden Sie Python mit Docker
Verwenden Sie TypeScript mit Django-Kompressor
Verwenden Sie WENIGER mit Django
Verwenden Sie MySQL mit Django
Verwenden Sie Enum mit SQLAlchemy
Verwenden Sie Tensorboard mit NNabla
Verwenden Sie GPS mit Edison
Verwenden Sie nim mit Jupyter
[Mac OS] Verwenden Sie Kivy mit PyCharm! [Python-Anwendungsentwicklung]
Verwenden Sie die Trello-API mit Python
Verwenden Sie benutzerdefinierte Tags mit PyYAML
Führen Sie Python mit PyCharm aus (Windows)
Verwenden Sie TensorFlow mit Intellij IDEA
Verwenden Sie die Twitter-API mit Python
Verwenden Sie pip mit Jupyter Notebook
Versuchen Sie es mit matplotlib mit PyCharm
Verwenden Sie DATE_FORMAT mit dem SQLAlchemy-Filter
Verwenden Sie TUN / TAP mit Python
Verwenden Sie sqlite3 mit NAO (Pepper)
Verwenden Sie die load_extensions von sqlite mit Pyramid
Verwenden Sie Windows 10-Schriftarten mit WSL
Verwendung von Chainer mit Jetson TK1
Verwenden Sie SSL mit Sellerie + Redis
Verwenden Sie Cython mit Jupyter Notebook
Debuggen mit dem PEPPER Python Interpreter
Linux am schnellsten mit AWS lernen
PyTorch mit AWS Lambda [Lambda-Import]
Verwenden Sie Maxout + CNN mit Pylearn2
Verwenden Sie das Django-Modell vom Interpreter
Verwenden Sie OpenBLAS mit numpy, scipy
Erste Schritte mit Django mit PyCharm
Verwenden Sie die Unterschall-API mit Python3
Verwenden von Sonicwall NetExtener mit Systemd
Verwenden Sie Python unter Windows (PyCharm)
Verwenden Sie prefetch_related bequem mit Django
Verwenden von Bokeh mit IPython Notebook
Verwenden Sie Python-ähnliche Bereiche mit Rust
Verwenden Sie einfache Anführungszeichen, ohne mit dem Befehl UNLOAD von AWS Redshift zu entkommen
Bereiten Sie eine Umgebung für die Verwendung von OpenCV und Pillow mit AWS Lambda vor
Verwenden Sie pyright mit CentOS7, emacs lsp-mode
Python: So verwenden Sie Async mit
Verwenden der SQL-Datenbank von Azure mit SQL Alchemy
Verwenden Sie eine Point Grey-Kamera mit Python (PyCapture2).