
Tutoriel rapide pour configurer PyCharm et l'exécuter sur une instance GCP distante via un interpréteur SSH distant
Quel est notre objectif ?
Écrire du code sur votre portable, mais l'exécuter sur une machine Google Cloud distante dotée de plus de RAM et de CPU.
Lors du développement d'une application Python, il est souvent pratique d'exécuter le code sur une instance GCP (AI Notebook / Google Compute Engine). C'est particulièrement utile, car le code de Machine Learning (ML) ou de traitement de données nécessite souvent une machine haut de gamme avec plusieurs CPU et beaucoup de RAM.
Autre avantage : exécuter le code à distance permet de s'authentifier auprès des autres services Google Cloud Platform via le compte de service associé à l'instance. À l'issue de ce tutoriel, vous pourrez utiliser PyCharm depuis votre Mac, le code étant exécuté à distance sur une VM GCP.
Prérequis
Pour démarrer, il vous faut :
- PyCharm Pro installé sur votre machine Mac/Linux
- Un compte GCP actif
C'est parti
Étape 1 : configurer une clé SSH sur votre Mac [1]
Exécutez la commande suivante dans votre terminal Mac/Linux pour générer une nouvelle paire de clés SSH :
ssh-keygen -t rsa -f ~/.ssh/[KEY_FILENAME]
J'ai choisi de ne pas définir de phrase secrète et j'ai nommé la clé temp_key.
Formater la clé publique
Affichez le contenu de la clé publique de la paire SSH que vous venez de créer avec la commande suivante :
cat ./ssh/temp_key.pubCopiez le contenu de la clé dans le presse-papiers, depuis la mention ssh-rsa (incluse) jusqu'au signe = (avant le nom d'utilisateur).

Ouvrez un éditeur de texte et formatez la clé ainsi :
ssh-rsa [KEY VALUE]= [USER_NAME]Conservez ce texte pour la suite.
Étape 2 : créer ou modifier une VM sur GCP
Il vous faut maintenant une machine dans le cloud. J'aime utiliser les AI Notebooks, car ces machines sont préinstallées avec un environnement Python orienté IA qui inclut de nombreuses bibliothèques de data science, de ML et Google Cloud. Pour créer un notebook, suivez ce guide.
À noter : les AI Notebooks (désormais intégrés à Vertex AI) reposent sur une instance Compute Engine sous-jacente. Que vous ayez créé une instance Compute Engine simple ou un AI Notebook, vous devrez la modifier pour autoriser l'accès distant via SSH. PyCharm pourra ainsi copier les fichiers vers vos machines et se connecter à l'interpréteur Python.
Modifier la machine d'un AI Notebook
L'instance de notebook nommée my-instance présente les détails suivants :

En cliquant sur VIEW VM DETAILS, puis sur EDIT, vous pouvez modifier les caractéristiques du Compute Engine qui héberge l'AI Notebook. Faites défiler jusqu'à SSH Keys, puis ouvrez la liste déroulante show and edit.

Cliquez sur Add item et collez la clé SSH formatée en ajoutant un nom d'utilisateur à la fin. Si l'opération réussit, votre nom d'utilisateur s'affiche à gauche de la clé.

Vous pouvez aussi configurer une adresse IP externe statique pour la machine, afin que son IP publique reste identique à chaque redémarrage.
Étape 3 : configurer PyCharm !
Votre machine accepte désormais les connexions SSH avec la paire de clés que vous avez créée. Il ne reste plus qu'à autoriser PyCharm à déployer et exécuter le code sur cette machine distante. Copiez l'adresse IP externe de la machine ; elle apparaît dans les détails de la VM lorsque celle-ci est en cours d'exécution.

Ouvrez ensuite PyCharm > Preferences > Project:[nom] > Python interpreter > roue Options > add.

Dans le champ Host, saisissez l'adresse IP externe de la machine ; dans Username, indiquez le nom d'utilisateur défini lors de la création de la clé. Cliquez sur Next pour que PyCharm tente d'établir la connexion avec la VM. Vous devrez ensuite fournir les identifiants de connexion.

Dans le champ private key file, indiquez l'emplacement de la clé privée SSH (/[user]/.ssh/temp_key dans notre cas, celle sans l'extension .pub).
Cliquez sur Next, et c'est terminé ! En bas à droite de l'écran, vous verrez que l'interpréteur correspond désormais à votre environnement Python distant. La première exécution peut demander quelques minutes, le temps de copier les fichiers d'aide PyCharm sur la machine distante et de synchroniser les environnements Python.

Pour aller plus loin : plusieurs environnements Python
Il arrive que plusieurs environnements Python soient installés sur la machine distante. Vous pouvez par exemple avoir un environnement conda sur votre AI Notebook. Pour choisir celui à utiliser, modifiez la configuration de votre interpréteur distant.
Accédez aux paramètres de l'interpréteur depuis le menu en bas à droite de PyCharm :

Modifiez à nouveau les paramètres de votre interpréteur existant :

Dans python interpreter path, collez l'emplacement de votre installation Python sur la machine distante.

En résumé
En complément de ce tutoriel, voici quelques ressources utiles. Pour approfondir la configuration avancée de l'interpréteur Python dans PyCharm, consultez ce guide publié par JetBrains. Vous souhaitez aller plus loin sur la configuration de votre clé SSH sur les instances GCP ? Consultez cette ressource.
Bonne productivité !
Merci de votre lecture ! Pour rester informé, suivez-nous sur le DoiT Engineering Blog, la page LinkedIn DoiT et le compte Twitter DoiT. Pour découvrir nos opportunités de carrière, rendez-vous sur https://careers.doit.com.