[PYTHON] Utiliser l'interpréteur AWS avec Pycharm

Choses à faire

Développez avec pycharm local à l'aide de l'interpréteur d'instance AWS!

Contexte

Lorsqu'il est extrêmement difficile d'installer un module spécifique, il est très facile d'utiliser l'AWS AMI ou le conteneur docker déjà installé. Cependant, je veux coder avec un IDE tel que pycharm, il est donc un peu difficile d'entrer dans le serveur et de développer avec vim. .. Avec pycharm, j'ai trouvé une fonction qui me permet de me connecter à un serveur avec télécommande et code en utilisant l'interpréteur de ce serveur, donc je vais l'essayer et écrire une note.

environnement

Méthode

1 Appuyez sur Ajouter une télécommande dans les paramètres de l'interpréteur pycharm.

Cliquez sur Préférences Pycharm-> Projet: hoge-> Interpréteur de projet et l'écran suivant apparaîtra. Cliquez sur l'engrenage dans le coin supérieur droit スクリーンショット 2017-05-04 16.22.06.png La fenêtre suivante apparaîtra, alors appuyez sur "Ajouter une télécommande". スクリーンショット 2017-05-04 16.37.16.png

2 paramètres SSH

Lorsque vous appuyez sur Ajouter une télécommande, Configure de l'interpréteur apparaît, donc lorsque vous appuyez sur Informations d'identification SSH, l'écran de configuration suivant apparaît. スクリーンショット 2017-05-04 16.22.29.png

Spécifiez les éléments suivants pour chacun ici.

--Spécifiez une adresse IP publique telle que l'hôte: 54.xx.xx.xx --port: spécifiez le numéro de port pour la connexion ssh

C'est acceptable. Parfois, en fonction de l'AMI, l'environnement de travail peut être construit en tant qu'utilisateur root au lieu d'un utilisateur général tel que ec2-user, donc dans ce cas je jouerai avec sshd_config et la clé publique.

# sshd_Modifier la configuration
vi /etc/ssh/sshd_config
# PermitRootLogin forced-commands-seulement ci-dessous.
PermitRootLogin without-password

#Copie de la clé publique
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

J'ai écrit jusqu'à présent, mais j'ai remarqué que cette fonctionnalité est assez ennuyeuse. .. Premièrement, il ne peut être exécuté que si le chemin local existe du côté distant. Peut-être est-il correct d'utiliser cette fonction en téléchargeant ce qui a été écrit localement sur la télécommande tel quel? Ensuite, certains modules ne peuvent pas être importés pour une raison quelconque. J'utilise caffe, mais import caffe dit que non. Il n'y a pas de pycaffe sous anaconda, donc je devrai peut-être la déplacer vers anaconda.

Hmmm, puis-je l'utiliser pour créer une source avec un IDE local qui ne donne pas d'erreur d'importation et la lever? ?? Merveille. .. Je suis assez triste de ne pas pouvoir déboguer. .. .. J'étudierai le problème ci-dessus s'il y a une capacité disponible.

Postscript

J'ai remarqué la correspondance entre les chemins locaux et distants et la fonction de téléchargement automatique, alors je l'ai ajoutée.

Comment cartographier local et distant

1 Cliquez sur "Modifier la configuration .." dans "RUN" dans l'onglet supérieur. 2 Cliquez sur le côté droit de Path Mapping. 3 Définissez le chemin local et le chemin distant. c'est tout.

Méthode de téléchargement automatique

Même si vous l'associez, le travail est local, vous devez donc télécharger la source modifiée sur AWS une par une. Comment télécharger automatiquement la source modifiée par pycharm local sur AWS. 1 Dans Préférences-> Déploiement, appuyez sur le bouton +. 2 Sélectionnez SFTP et spécifiez la paire de clés global IP Root path = "/". Vous pouvez laisser les fichiers Parcourir sur le serveur tels quels. 3 Dans Préférences-> Déploiement-> Options, définissez Télécharger automatiquement les fichiers modifiés ... sur Toujours et spécifiez Remplacer les autorisations par défaut sur les fichiers: comme toutes les autorisations. c'est tout.

Vous pouvez désormais coder localement avec pycharm et le développer avec une réflexion immédiate sur AWS. Vous pouvez également déboguer. Génial.

Lors de l'utilisation de cuda

Il peut y avoir une erreur car il n'y a pas de chemin pour le système lib de cuda. Dans ce cas, définissez ce qui suit dans Variable d'environnement dans les configurations d'exécution.

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

Lors de l'utilisation de l'interpréteur distant, ": impossible de se connecter au serveur X" apparaît dans le débogage et une erreur se produit.

Je ne sais pas exactement, mais cela semble provoquer une erreur si Xcode ne peut pas être utilisé sur le serveur. Par conséquent, des travaux sont nécessaires pour terminer avec Xcode local.

  1. Connectez-vous en local avec les éléments suivants.
ssh -Y username@ipaddress

Avec la connexion de 2.1, vérifiez le contenu de DISPLAY avec la commande suivante.

echo $DISPLAY
> localhost:10.0
  1. Définissez le contenu de 2 dans la variable d'environnement de pycharm.
DISPLAY localhost:10.0

Exécutez le débogage avec pycharm avec la connexion de 4.1. D'ACCORD.

Si vous souhaitez vérifier le tensorboard, etc. sur le cloud comme AWS mais que le port n'est pas libéré

Si vous vous connectez depuis le local avec ce qui suit, spécifiez le port à utiliser sur le serveur comme 9999 et connectez-vous au navigateur local avec localhost: 8888, l'accès sera transféré vers 9999 et affiché. ..

ssh -L 8888:localhost:9999 user@pablic_ip

Recommended Posts

Utiliser l'interpréteur AWS avec Pycharm
Comment utiliser Cmder avec PyCharm (Windows)
Interpréteur à distance PyCharm par SSH (WSL2, venv, pyenv)
Utiliser python dans le conteneur Docker comme interpréteur Pycharm
Utilisez mecab-ipadic-neologd avec igo-python
Utilisez RTX 3090 avec PyTorch
Utiliser ansible avec cygwin
Utiliser pipdeptree avec virtualenv
[Python] Utiliser JSON avec Python
Utilisez Mock avec pytest
Utiliser l'indicateur avec pd.merge
Utiliser Gentelella avec Django
Utiliser mecab avec Python 3
Utiliser tensorboard avec Chainer
Utiliser DynamoDB avec Python
Utilisez Python 3.8 avec Anaconda
Utiliser python avec docker
Utiliser TypeScript avec django-compresseur
Utilisez LESS avec Django
Utiliser MySQL avec Django
Utiliser Enum avec SQLAlchemy
Utiliser tensorboard avec NNabla
Utiliser le GPS avec Edison
Utilisez nim avec Jupyter
[Mac OS] Utilisez Kivy avec PyCharm! [Développement d'applications Python]
Utiliser l'API Trello avec python
Utiliser des balises personnalisées avec PyYAML
Exécutez python avec PyCharm (Windows)
Utiliser TensorFlow avec Intellij IDEA
Utiliser l'API Twitter avec Python
Utiliser pip avec Jupyter Notebook
Essayez d'utiliser matplotlib avec PyCharm
Utiliser DATE_FORMAT avec le filtre SQLAlchemy
Utiliser TUN / TAP avec Python
Utilisez sqlite3 avec NAO (Pepper)
Utilisez les load_extensions de sqlite avec Pyramid
Utiliser les polices Windows 10 avec WSL
Utilisation du chainer avec Jetson TK1
Utiliser SSL avec Celery + Redis
Utiliser Cython avec Jupyter Notebook
Déboguer avec l'interpréteur PEPPER python
L'apprentissage le plus rapide sous Linux avec AWS
PyTorch avec AWS Lambda [importation Lambda]
Utilisez Maxout + CNN avec Pylearn2
Utiliser le modèle django de l'interpréteur
Utilisez OpenBLAS avec numpy, scipy
Premiers pas avec Django avec PyCharm
Utiliser l'API subsonique avec python3
Utilisation de Sonicwall NetExtener avec Systemd
Utiliser Python sur Windows (PyCharm)
Utilisez prefetch_related commodément avec Django
Utilisation de Bokeh avec IPython Notebook
Utiliser une plage de type Python avec Rust
Utilisez des guillemets simples sans échapper avec la commande UNLOAD d'AWS Redshift
Préparer un environnement pour utiliser OpenCV et Pillow avec AWS Lambda
Utiliser pyright avec CentOS7, emacs lsp-mode
Python: comment utiliser async avec
Utilisation de la base de données SQL d'Azure avec SQL Alchemy
Utiliser la caméra Point Grey avec Python (PyCapture2)