6 votes

Interprète Pycharm Remote sur Docker remote : [Errno 2] Aucun fichier ou répertoire de ce type

Comme spécifié dans le titre, j'essaie d'utiliser Pycharm Professional (2018.2) avec un interpréteur distant python dans une machine Docker hébergée sur un serveur distant dans mon réseau local. J'ai créé un exemple très simple en suivant l'aide ' https://www.jetbrains.com/help/pycharm/using-docker-as-a-remote-interpreter.html '.

  • Pycharm 2018.2 est installé sur un pc du réseau local (192.168.1.10) sur une distro debian ;
  • Docker est installé sur un serveur debian du réseau local (192.168.1.22).

J'ai pu configurer Docker en tant qu'interprète distant, me connecter au service Docker via l'outil Pycharm, mais lorsque j'essaie d'exécuter (ou de déboguer) le fichier main.py dans le conteneur Docker, j'obtiens toujours ceci :

37073edcd9d2:python -u /opt/project/main.py (null): can't open file '/opt/project/main.py': [Errno 2] No such file or directory
Process finished with exit code 2

L'exécution se fait bien dans le conteneur Docker distant mais il semble que le fichier à exécuter ne soit pas trouvé. J'ai attaché manuellement le volume local comme décrit sur différents blogs avec toutes les variations possibles mais j'obtiens toujours la même erreur. Voici quelques spécifications de ma configuration : Paramétrage de l'outil Docker

projet de paramétrage de l'interprète

Configuration de l'exécution/du débogage

Paramétrage du conteneur Docker avec mappage de volume dans la configuration d'exécution/débogage

Manque-t-il quelque chose ?

Réservoirs. Toute aide est la bienvenue !

2voto

ssboy Points 63

Le problème réside dans la "limite" de Pycharm à gérer une machine docker sur un hôte distant "sous le capot". Lors de l'insertion du mappage de volume dans la configuration d'exécution / de débogage, il est interprété comme un chemin local et donc, dans ce cas, un chemin qui doit être présent sur le serveur distant. Donc, pour l'instant, la seule option est de monter le chemin local (le dossier où se trouve le projet) sur l'hôte distant du service Docker en le partageant d'abord par le biais d'un service SSHFS ou NFS. Donc ... (1) j'ai partagé le dossier du projet Pycharm (machine locale ip 192.168.1.10) en utilisant NFS ; (2) j'ai monté le dossier partagé sur l'hôte du serveur (sur le serveur ip 192.168.1.22 ; mount -t nfs 192.168.1.10:/home/user/PythonProjects /home/ext-user/mnt/projects ) puis (3) dans la configuration run / debug de Pycharm j'ai mappé les volumes avec le chemin monté sur le serveur distant ... Run ... le programme s'exécute maintenant sans aucune erreur. [ Résultat de l'exécution ]

Voici quelques spécifications de ma nouvelle configuration :

Configuration de l'exécution/du débogage

Paramétrage du conteneur Docker avec mappage de volume dans la configuration d'exécution/débogage

J'espère que cette solution pourra être utile à d'autres personnes. J'espère également qu'il existe de meilleures solutions que la mienne :-)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X