[PYTHON] Utilisation de Docker (Hyper-V) avec PyCharm sur Windows 10 (à partir d'août 2017)

Lorsque j'ai essayé d'utiliser Docker pour PyCharm sur Windows 10, j'étais accro à diverses choses telles que la résolution de chemin, alors prenez-en note. À la suite d'essais et d'erreurs, il peut y avoir des étapes supplémentaires.

Pouvoir

Choses impossibles

Environnement éprouvé

PyCharm n'a pas bien fonctionné en 2017.1. Pour ceux qui ne sont pas Windows ou qui sont Windows mais n'utilisent pas Hyper-V, reportez-vous à Utilisation de Docker pour le développement avec PyCharm. Je pense que ce serait bien si c'était fait.

1. Préparation de l'environnement Docker

1.1. Installation de Docker Toolbox

Lorsque vous utilisez Docker sur Windows, il existe Docker pour Windows et Docker Toolbox, mais ** Docker Toolbox ** est inclus. Sélectionnez le bouton Get Docker Toolbox for Windows sur la page ci-dessous pour l'installer.

https://docs.docker.com/toolbox/overview/

Au début, j'ai installé Docker pour Windows pour utiliser Hyper-V, mais j'ai abandonné car je ne pouvais pas définir le dossier Certificats décrit plus tard [^ 1]. J'ai également utilisé Hyper-V avec Docker Toolbox.

1.2. Activer Hyper-V

Veuillez activer Hyper-V en vous référant à ce qui suit. Installer Hyper-V sur Windows 10

1.3. Création de la machine virtuelle Boot2Docker

Créez une machine virtuelle en vous référant à ce qui suit. https://docs.docker.com/machine/drivers/hyper-v/

$ docker-machine create --driver hyperv --hyperv-memory 4096 --hyperv-cpu-count 4 default

Lorsque la commande ci-dessus est exécutée, une machine virtuelle sera créée avec les paramètres suivants.

Éléments de réglage option Exemple ci-dessus
chauffeur --driver hyperv
Capacité mémoire --hyperv-memory 4096
Nombre de processeurs --hyperv-cpu-count 4
Nom de la machine default

Veuillez vous référer au lien ci-dessus pour d'autres options et détails. Il semble que la valeur de paramètre de cette zone puisse être modifiée ultérieurement avec Hyper-V Manager.

1.4. Paramètres Hyper-V

La VM telle qu'elle est ne peut pas se connecter au réseau externe. [Introduction à Docker Machine (pour Hyper-V)](http://qiita.com/ohhara_shiojiri/items/801a24a2c94ff93be82d#hyper-v%E7%92%B0%E5%A2%83%E8%A8%AD%E5 Veuillez définir le commutateur virtuel et la carte réseau en vous référant au ** paramètre d'environnement Hyper-V ** de% AE% 9A).

Par mesure de précaution dans ce cas, ** Assurez-vous de configurer les réseaux externes et internes. ** Si vous utilisez uniquement le réseau externe, l'adresse changera lorsque vous vous connecterez à un autre réseau et cela ne fonctionnera pas.

Il doit être dans l'état suivant.

virtual-machineのネットワーク設定.png

1.5. Création d'un dossier partagé Windows

Méthode de configuration pour autoriser uniquement des personnes spécifiques à accéder au dossier partagé de Windows 10 (partie 2)

Effectuez les réglages suivants en vous référant à la page ci-dessus.

Assurez-vous que le dossier partagé contient ** le projet que vous développez **. Le nom d'utilisateur et le mot de passe définis ici seront utilisés dans la section suivante. (L'ajout d'utilisateurs n'est peut-être pas vraiment nécessaire. Je ne suis pas sûr ici.)

1.6. Montez le dossier partagé sur la VM

Rendez le dossier partagé Windows accessible à partir de la machine virtuelle en tant que cifs. Tout d'abord, installez cifs-utils sur la VM. Connectez-vous à la VM avec docker-machine ssh et procédez comme suit: (Référence)

$ wget http://distro.ibiblio.org/tinycorelinux/5.x/x86/tcz/cifs-utils.tcz
$ tce-load -i cifs-utils.tcz

Ensuite, montez l'ensemble de dossiers partagés en vous référant à ce qui suit. Monter et utiliser les dossiers partagés Windows à partir d'Ubuntu

Persistance des paramètres

Configurez-le pour qu'il se monte automatiquement au redémarrage de la machine virtuelle. Créez un nouveau / var / lib / boot2docker / bootlocal.sh sur la VM avec le contenu suivant.

bootlocal.sh


# /var/lib/boot2docker/Lorsqu'il est stocké dans le docker-Exécuté au démarrage de la machine

ip addr add 172.29.32.2/20 dev eth0 #Définissez une adresse IP fixe dans le même sous-réseau que HostOS

uid=1000              #utilisateur docker
gid=50                #groupe de personnel
user=share            #Nom d'utilisateur autorisé à partager sur HostOS
password=xxxxxxxxxxxx #Mot de passe de l'utilisateur qui a autorisé le partage
host_ip=//172.29.32.1 #Adresse IP HostOS

mkdir -p /home/docker/src
mount -t cifs -o uid=${uid},gid=${gid},username=${user},password=${password} ${host_ip}/src /home/docker/src

L'utilisateur et le mot de passe ici sont ceux définis dans "1.5. Création d'un dossier partagé Windows".

host_ip est l'adresse IP de votre PC Windows. Spécifiez l'adresse IP du réseau interne afin qu'il ne soit pas affecté par les modifications du réseau. Dans mon environnement, il était dans l'état suivant.

> ipconfig

Configuration IP Windows

Adaptateur Ethernet vEthernet(HNS Internal NIC) 2:

Suffixe DNS spécifique à la connexion. . . . .:
Lier l'adresse IPv6 locale. . . . .: fe80::68fe:336d:b69b:e392%24
Adresse IPv4. . . . . . . . . . . .: 172.29.32.1 ★ Utilisez-le comme adresse IP de HostOS
masque de sous-réseau. . . . . . . . . .: 255.255.240.0 ★ Ceci est pour le sous-réseau
passerelle par défaut. . . . . . .:

···réduction

1.7. Définition d'une adresse IP fixe pour la VM

Comme je l'ai mentionné précédemment, définissez l'adresse IP fixe dans la ligne suivante décrite dans bootlocal.sh ci-dessus.

ip addr add 172.29.32.2/20 dev eth0 #Définissez une adresse IP fixe dans le même sous-réseau que HostOS

Le masque de sous-réseau correspond au résultat de ʻipconfig` sous Windows. Depuis PyCharm, vous accéderez à l'adresse IP définie ici.

C'est OK si DOCKER_HOST of docker-machine env est l'adresse IP spécifiée ici.

$ docker-machine env default
You can further specify your shell with either 'cmd' or 'powershell' with the --shell flag.

SET DOCKER_TLS_VERIFY=1
SET DOCKER_HOST=tcp://172.29.32.2:2376
SET DOCKER_CERT_PATH=C:\Users\uj\.docker\machine\machines\default
SET DOCKER_MACHINE_NAME=default
SET COMPOSE_CONVERT_WINDOWS_PATHS=true

1.8. Préparation de l'image Docker pour Python

Préparez votre image préférée. Je l'ai obtenu de: https://hub.docker.com/_/python/

> docker pull python:3.5

2. Paramètres dans PyCharm

Enfin, nous entrerons les paramètres sur PyCharm.

2.1. Spécification de la VM

Ouvrez l'écran des paramètres à partir de Fichier> Paramètres et ouvrez Construire, Exécution, Déploiement> Docker. Après avoir ajouté en appuyant sur le bouton +, entrez comme indiqué dans l'écran ci-dessous. pycharm-virtual-machine設定2.png

En cas de succès, vous verrez «Connexion réussie» au milieu de la fenêtre. De plus, ce dossier Certificats n'a pas pu être spécifié dans Docker pour Windows. [^ 1]

2.2. Désignation de l'interprète de projet

Continuez à ouvrir Projet: Propre projet> Interpréteur de projet à partir de l'écran des paramètres. Cliquez sur l'icône d'engrenage en haut à droite de la fenêtre et réglez comme suit. pycharm-interpreter設定.png

Si vous pouvez le configurer correctement et attendre un moment (3-4 minutes?), Le package valide sera affiché avec l'image spécifiée.

pycharm-interpreter設定2.png

2.3. Run/Debug Configurations Enfin, définissez les paramètres pour l'exécution du test.

2.3.1 Ajout de paramètres d'exécution

Sélectionnez Exécuter> Modifier les configurations dans la barre de menus pour afficher l'écran Exécuter / Déboguer les configurations. Appuyez sur le bouton + et sélectionnez Python tests> Unittests (je pense que vous pouvez utiliser ce que vous voulez pour Unittests). pycharm-test-add.png

2.3.2 Paramètres d'exécution

C'est le plus compliqué. ** Il est nécessaire de faire la distinction entre le chemin sur Windows et le chemin sur VM **. Veuillez lire le chemin en fonction de votre propre environnement.

Dans les exemples suivants, le chemin du projet est: C:\Users\uj\src\github.com\ujiro99\auto_logger

pycharm-test設定.png pycharm-test-container設定.png

Si vous laissez le paramètre Path mappings dans" 2.1. Specifying a VM ", ** le chemin sera converti ** involontairement, et cela ne fonctionnera pas.

3. Exécution des tests

Après avoir terminé les réglages jusqu'à ce point, vous pouvez exécuter le test. Dans cet exemple, si vous stockez les fichiers de test sous chemin du projet / tests / et exécutez le test, il sera exécuté comme suit. Vous pouvez également exécuter des débogages et utiliser des points d'arrêt.

pycharm-test.png

Résumé

J'ai présenté comment utiliser PyCharm dans l'environnement Docker (Hyper-V). Pour être honnête, le paramètre est assez gênant, donc pour le moment, je pense qu'il est préférable de gérer docilement l'environnement Python sur Local. J'attends avec impatience le développement futur de Jetbrans (ou Docker pour Windows).

[^ 1]: Docker pour Windows aurait peut-être fonctionné si vous exécutiez docker-machine regenerate-certs Hmm.

Recommended Posts

Utilisation de Docker (Hyper-V) avec PyCharm sur Windows 10 (à partir d'août 2017)
Jusqu'au début du tutoriel django avec pycharm sous Windows
CHEMIN lors de l'utilisation de l'environnement virtuel ANACONDA avec Pycharm (à partir de Mac 2020/10/03)
Construction facile de code C ++ avec CMake sur Docker
Spécifiez le nom du projet de docker-compose avec l'intégration Docker de Pycharm
Exécutez python avec PyCharm (Windows)
Essayez d'utiliser matplotlib avec PyCharm
Essayez d'utiliser OpenCV sur Windows
Mémo pour la création d'un environnement Python à l'aide de Docker sur Windows 10 Famille
Remarques sur la création d'un environnement Linux à l'aide de VirtualBox + Vagrant sous Windows 10
Utiliser Python sur Windows (PyCharm)
Bloguer avec Pelican sur Windows
Obtenez le nom d'hôte du PC hôte avec Docker sous Linux
[Apprentissage automatique Python] Recommandation d'utilisation de Spyder pour les débutants (à partir d'août 2020)
Construction de l'environnement de TensorFlow + JupyterNotebook + Matplotlib sur la version Windows Anaconda (version d'août 2017)
Japaneseize Matplotlib avec Alpine en utilisant Docker
Achèvement de la commande docker sous Linux
Version Ideone> Python: 3.5 (au 29 août 2017)
Exécutez SwitchBot avec Bleak sur Windows 10
Utilisez Tensorflow 2.1.0 avec Anaconda sur Windows 10!
Utilisation du japonais avec IPython @ Windows de Rodeo
Emplacement de pip.ini (pip.conf) dans Windows 10
Notes sur l'utilisation de rstrip avec python.
Commençant par USD sur Windows
Premiers pas avec Python 3.8 sous Windows
Lors de l'utilisation de nginx etc. avec Docker, tout d'abord, connaissance de Linux ... (commandement)
Mettez NumPy, SciPy, Matplotlib dans OS X avec Homebrew (à partir de novembre 2015)
Remarques sur l'utilisation d'OpenCV avec Windows10 Python 3.8.3.
Exécutez le servo avec Python sur ESP32 (Windows)
Essayez d'utiliser Bash sur Windows 10 2 (installation de TensorFlow)
Utilisation de venv dans un environnement Windows + Docker [Python]
Derrière le flyer: utiliser Docker avec Python
Comment utiliser Cmder avec PyCharm (Windows)
Création de scicit-learn dans un environnement Windows 10 à l'aide de Pycharm
Étude sur Tokyo Rent en utilisant Python (3-1 sur 3)
Lancez l'application Flask avec Docker sur Heroku
Exécutez matplotlib sur un conteneur Windows Docker
J'ai essayé la détection d'objets avec YOLO v3 (TensorFlow 2.1) sur le GPU de windows!