[PYTHON] Verwenden von Docker (Hyper-V) mit PyCharm unter Windows 10 (Stand August 2017)

Als ich versuchte, Docker für PyCharm unter Windows 10 zu verwenden, war ich süchtig nach verschiedenen Dingen wie der Pfadauflösung. Notieren Sie sich dies. Es ist das Ergebnis von Versuch und Irrtum, daher kann es zusätzliche Schritte geben.

In der Lage sein

Dinge unmöglich

Versuchte Umgebung

PyCharm hat 2017 nicht gut funktioniert.1. Informationen zu Personen, die nicht Windows oder Windows sind, aber Hyper-V nicht verwenden, finden Sie unter Verwenden von Docker für die Entwicklung mit PyCharm. Ich denke, es wäre gut, wenn es gemacht würde.

1. Vorbereiten der Docker-Umgebung

1.1. Installieren der Docker Toolbox

Bei Verwendung von Docker unter Windows gibt es Docker für Windows und Docker Toolbox, aber ** Docker Toolbox ** ist enthalten. Klicken Sie auf der folgenden Seite auf die Schaltfläche "Docker Toolbox für Windows herunterladen", um sie zu installieren.

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

Zuerst habe ich Docker für Windows installiert, um Hyper-V zu verwenden, aber ich habe aufgegeben, weil ich den später beschriebenen Ordner "Zertifikate" nicht festlegen konnte [^ 1]. Ich habe auch Hyper-V mit Docker Toolbox verwendet.

1.2 Aktivieren Sie Hyper-V

Bitte aktivieren Sie Hyper-V unter Bezugnahme auf Folgendes. Hyper-V unter Windows 10 installieren

1.3. Erstellen der virtuellen Boot2Docker-Maschine

Erstellen Sie eine VM, indem Sie auf Folgendes verweisen. https://docs.docker.com/machine/drivers/hyper-v/

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

Wenn der obige Befehl ausgeführt wird, wird eine VM mit den folgenden Einstellungen erstellt.

Elemente einstellen option Oben Beispiel
Treiber --driver hyperv
Speicherkapazität --hyperv-memory 4096
Anzahl der CPUs --hyperv-cpu-count 4
Maschinenname default

Weitere Optionen und Details finden Sie unter dem obigen Link. Es scheint, dass der Einstellungswert dieses Bereichs später mit Hyper-V Manager geändert werden kann.

1.4 Hyper-V-Einstellungen

Die VM kann keine Verbindung zum externen Netzwerk herstellen. [Einführung in Docker Machine (für Hyper-V)](http://qiita.com/ohhara_shiojiri/items/801a24a2c94ff93be82d#hyper-v%E7%92%B0%E5%A2%83%E8%A8%AD%E5 Stellen Sie den virtuellen Switch und den Netzwerkadapter unter ** Einstellung der Hyper-V-Umgebung ** von% AE% 9A ein.

Vorsichtshalber in diesem Fall ** Stellen Sie sicher, dass sowohl das externe als auch das interne Netzwerk eingestellt sind. ** Wenn Sie nur das externe Netzwerk verwenden, ändert sich die Adresse, wenn Sie eine Verbindung zu einem anderen Netzwerk herstellen, und es funktioniert nicht.

Es sollte sich im folgenden Zustand befinden.

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

1.5. Erstellen eines freigegebenen Windows-Ordners

Einstellungsmethode, mit der nur bestimmte Personen auf den freigegebenen Ordner von Windows 10 (Teil 2) zugreifen können

Nehmen Sie die folgenden Einstellungen vor, indem Sie auf die obige Seite verweisen.

Stellen Sie sicher, dass der freigegebene Ordner ** das Projekt enthält, das Sie entwickeln **. Der hier festgelegte Benutzername und das Kennwort werden im nächsten Abschnitt verwendet. (Das Hinzufügen von Benutzern ist möglicherweise nicht unbedingt erforderlich. Ich bin hier nicht sicher.)

1.6 Mounten Sie den freigegebenen Ordner auf der VM

Machen Sie den freigegebenen Windows-Ordner von der VM aus als CIFS zugänglich. Installieren Sie zunächst cifs-utils auf der VM. Melden Sie sich mit docker-machine ssh bei der VM an und gehen Sie wie folgt vor: (Referenz)

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

Hängen Sie dann den freigegebenen Ordner ein, indem Sie auf Folgendes verweisen. Bereitstellen und Verwenden von freigegebenen Windows-Ordnern von Ubuntu

Persistenz der Einstellungen

Stellen Sie ein, dass es beim Neustart der VM automatisch bereitgestellt wird. Erstellen Sie auf der VM eine neue Datei / var / lib / boot2docker / bootlocal.sh mit den folgenden Inhalten.

bootlocal.sh


# /var/lib/boot2docker/Bei Speicherung im Docker-Wird ausgeführt, wenn die Maschine startet

ip addr add 172.29.32.2/20 dev eth0 #Stellen Sie eine feste IP-Adresse im selben Subnetz wie HostOS ein

uid=1000              #Docker-Benutzer
gid=50                #Mitarbeitergruppe
user=share            #Benutzername darf unter HostOS geteilt werden
password=xxxxxxxxxxxx #Passwort des Benutzers, der das Teilen erlaubt hat
host_ip=//172.29.32.1 #HostOS IP-Adresse

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

Der Benutzer und das Kennwort hier sind diejenigen, die in "1.5. Erstellen eines freigegebenen Windows-Ordners" festgelegt sind.

host_ip ist die IP-Adresse Ihres Windows-PCs. Geben Sie die IP-Adresse des internen Netzwerks an, damit diese nicht von Netzwerkänderungen betroffen ist. In meiner Umgebung war es im folgenden Zustand.

> ipconfig

Windows IP-Konfiguration

Ethernet-Adapter vEthernet(HNS Internal NIC) 2:

Verbindungsspezifisches DNS-Suffix. . . . .:
Verknüpfen Sie die lokale IPv6-Adresse. . . . .: fe80::68fe:336d:b69b:e392%24
IPv4-Adresse. . . . . . . . . . . .: 172.29.32.1 ★ Verwenden Sie dies als IP-Adresse von HostOS
Subnetzmaske. . . . . . . . . .: 255.255.240.0 ★ Dies ist für das Subnetz
Standard-Gateway. . . . . . .:

···Kürzung

1.7 Festlegen einer festen IP-Adresse für die VM

Wie bereits erwähnt, stellen Sie die feste IP-Adresse in der folgenden Zeile ein, die im obigen Abschnitt "bootlocal.sh" beschrieben ist.

ip addr add 172.29.32.2/20 dev eth0 #Stellen Sie eine feste IP-Adresse im selben Subnetz wie HostOS ein

Die Subnetzmaske entspricht dem Ergebnis von "ipconfig" unter Windows. Von PyCharm aus greifen Sie auf die hier festgelegte IP-Adresse zu.

Es ist in Ordnung, wenn DOCKER_HOST von docker-machine env die hier angegebene IP-Adresse ist.

$ 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 Vorbereitung des Docker-Images für Python

Bereiten Sie Ihr Lieblingsbild vor. Ich habe es bekommen von: https://hub.docker.com/_/python/

> docker pull python:3.5

2. Einstellungen in PyCharm

Schließlich werden wir die Einstellungen auf PyCharm eingeben.

2.1 Angeben der VM

Öffnen Sie den Einstellungsbildschirm unter "Datei> Einstellungen" und öffnen Sie "Erstellen, Ausführen, Bereitstellen> Docker". Geben Sie nach dem Hinzufügen durch Drücken der Taste + wie im folgenden Bildschirm gezeigt ein. pycharm-virtual-machine設定2.png

Bei Erfolg wird in der Mitte des Fensters "Verbindung erfolgreich" angezeigt. Außerdem konnte dieser "Zertifikatsordner" in Docker für Windows nicht angegeben werden. [^ 1]

2.2 Bezeichnung des Projektdolmetschers

Öffnen Sie weiterhin "Projekt: Eigenes Projekt> Projektinterpreter" im Einstellungsbildschirm. Klicken Sie auf das Zahnradsymbol oben rechts im Fenster und stellen Sie es wie folgt ein. pycharm-interpreter設定.png

Wenn Sie es gut einstellen und eine Weile warten können (3-4 Minuten?), Wird das gültige Paket mit dem angegebenen Bild angezeigt.

pycharm-interpreter設定2.png

2.3. Run/Debug Configurations Nehmen Sie abschließend die Einstellungen für die Testausführung vor.

2.3.1 Hinzufügung von Ausführungseinstellungen

Wählen Sie in der Menüleiste "Ausführen> Konfigurationen bearbeiten", um den Bildschirm "Konfigurationen ausführen / debuggen" anzuzeigen. Drücken Sie die + -Taste und wählen Sie "Python-Tests> Unittests" (ich denke, Sie können für Unittests verwenden, was Sie möchten). pycharm-test-add.png

2.3.2 Ausführungseinstellungen

Das ist das komplizierteste. ** Es muss zwischen dem Pfad unter Windows und dem Pfad unter VM unterschieden werden **. Bitte lesen Sie den Pfad entsprechend Ihrer eigenen Umgebung.

In den folgenden Beispielen lautet der Projektpfad: C:\Users\uj\src\github.com\ujiro99\auto_logger

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

Wenn Sie die Einstellung "Pfadzuordnungen" in "2.1. Angeben einer VM" belassen, ** wird der Pfad ** unbeabsichtigt konvertiert und funktioniert nicht.

3. Testausführung

Nachdem Sie die Einstellungen bis zu diesem Punkt vorgenommen haben, können Sie den Test ausführen. Wenn Sie in diesem Beispiel die Testdateien unter "Projektpfad / Tests /" speichern und den Test ausführen, wird er wie folgt ausgeführt. Sie können auch Debugs ausführen und Haltepunkte verwenden.

pycharm-test.png

Zusammenfassung

Ich habe die Verwendung von PyCharm in der Docker-Umgebung (Hyper-V) vorgestellt. Um ehrlich zu sein, ist die Einstellung ziemlich problematisch, daher denke ich, dass es im Moment besser ist, die Python-Umgebung auf Local gehorsam zu verwalten. Ich freue mich auf die zukünftige Entwicklung von Jetbrans (oder Docker für Windows).

[^ 1]: Docker für Windows war möglicherweise in Ordnung, wenn Sie [docker-machine regenerate-certs] ausgeführt haben (https://docs.docker.com/machine/reference/regenerate-certs/). Hmm.

Recommended Posts

Verwenden von Docker (Hyper-V) mit PyCharm unter Windows 10 (Stand August 2017)
Bis zum Start des Django-Tutorials mit Pycharm unter Windows
PFAD bei Verwendung der virtuellen ANACONDA-Umgebung mit Pycharm (ab Mac 2020/10/03)
Einfache Erstellung von C ++ - Code mit CMake auf Docker
Geben Sie den Projektnamen von Docker-Compose mit Docker-Integration von Pycharm an
Führen Sie Python mit PyCharm aus (Windows)
Versuchen Sie es mit matplotlib mit PyCharm
Versuchen Sie es mit OpenCV unter Windows
Memo zum Erstellen einer Python-Umgebung mit Docker unter Windows 10 Home
Hinweise zum Erstellen einer Linux-Umgebung mit VirtualBox + Vagrant unter Windows 10
Verwenden Sie Python unter Windows (PyCharm)
Bloggen mit Pelican unter Windows
Rufen Sie den Hostnamen des Host-PCs mit Docker unter Linux ab
[Python Machine Learning] Empfehlung zur Verwendung von Spyder für Anfänger (Stand August 2020)
Umgebungskonstruktion von TensorFlow + JupyterNotebook + Matplotlib unter Windows Version Anaconda (Version August 2017)
Japanisieren Sie Matplotlib mit Alpine mit Docker
Abschluss des Docker-Befehls unter Linux
Ideone> Python-Version: 3.5 (Stand 29. August 2017)
Führen Sie SwitchBot mit Bleak unter Windows 10 aus
Verwenden Sie Tensorflow 2.1.0 mit Anaconda unter Windows 10!
Verwenden von Japanisch mit Rodeos IPython @ Windows
Speicherort von pip.ini (pip.conf) in Windows 10
Hinweise zur Verwendung von rstrip mit Python.
Beginnend mit USD unter Windows
Erste Schritte mit Python 3.8 unter Windows
Bei der Verwendung von Nginx usw. mit Docker vor allem Kenntnisse über Linux ... (Gebot)
Installieren Sie NumPy, SciPy, Matplotlib in OS X mit Homebrew (Stand November 2015).
Hinweise zur Verwendung von OpenCV mit Windows 10 Python 3.8.3.
Führen Sie das Servo mit Python unter ESP32 (Windows) aus.
Versuchen Sie es mit Bash unter Windows 10 2 (TensorFlow-Installation)
Verwenden von venv in der Windows + Docker-Umgebung [Python]
Hinter dem Flyer: Docker mit Python verwenden
Verwendung von Cmder mit PyCharm (Windows)
Erstellen von Scicit-Learn in einer Windows 10-Umgebung mit Pycharm
Studie über die Miete in Tokio mit Python (3-1 von 3)
Starten Sie die Flask-Anwendung mit Docker auf Heroku
Führen Sie matplotlib in einem Windows Docker-Container aus
Ich habe versucht, Objekte mit YOLO v3 (TensorFlow 2.1) auf der GPU von Windows zu erkennen!