Python 2.7 ist standardmäßig auf einem Mac installiert. Wenn Sie also eine Python 3.x-Umgebung benötigen, können Sie Pipenv oder Ich denke, dass Sie häufig eine Umgebung mit pyenv erstellen.
Die Installation schlug jedoch häufig fehl oder die Einrichtung nahm viel Zeit in Anspruch. Daher finden Sie hier eine Zusammenfassung zum Erstellen einer Python 3.x-Umgebung mit Docker.
Laden Sie "Docker Desktop für Mac" von der folgenden URL herunter und installieren Sie es. https://hub.docker.com/editions/community/docker-ce-desktop-mac
Führen Sie nach Abschluss der Docker-Installation den Befehl "Docker-Version" aus, um festzustellen, ob die Installation korrekt ist.
$ docker version
Client: Docker Engine - Community
Version: 19.03.5
API version: 1.40
Go version: go1.12.12
Git commit: 633a0ea
Built: Wed Nov 13 07:22:34 2019
OS/Arch: darwin/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
Version: 19.03.5
API version: 1.40 (minimum version 1.12)
Go version: go1.12.12
Git commit: 633a0ea
Built: Wed Nov 13 07:29:19 2019
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: v1.2.10
GitCommit: b34a5c8af56e510852c35414db4c1f4fa6172339
runc:
Version: 1.0.0-rc8+dev
GitCommit: 3e425f80a8c931f88e6d94a8c831b9d5aa481657
docker-init:
Version: 0.18.0
GitCommit: fec3683
Erstellen Sie einen beliebigen Ordner als Python-Projektordner und legen Sie die Python-Quelldateien in diesem Ordner ab.
$ cd /Users/username/work/python/helloworld
$ echo 'print("Hello World!")' > helloworld.py
Führen Sie den Befehl "docker run" aus, um den Container zu starten, der die Ausführungsumgebung für Python sein wird.
Geben Sie die folgenden Optionen an.
--- i (--interactive): An die Standardeingabe des Containers anhängen.
--- t (--tty): Weist ein Pseudo-Terminal (Pseudo-TTY) zu.
---- rm: Löscht den Container automatisch, wenn der Container geschlossen wird.
--- v (--volume): Hängen Sie den lokalen Ordner in den Container ein. (
Verwenden Sie für das Docker-Image "python: 3.7-alpine", das auf Docker Hub veröffentlicht wurde. Benutzen.
"/ Bin / sh" am Ende des Befehls ist der Befehl, der ausgeführt wird, wenn der Container gestartet wird.
$ docker run -it --rm -v /Users/username/work/python/helloworld:/helloworld python:3.7-alpine /bin/sh
Führen Sie nach dem Start des Containers den folgenden Befehl aus, um zu überprüfen, ob er ordnungsgemäß funktioniert.
/ # ls
bin etc home media opt root sbin sys usr
dev helloworld lib mnt proc run srv tmp var
/ # python --version
Python 3.7.5
Gehen Sie zu Ihrem Projektordner und führen Sie die Python-Datei aus.
/ # cd helloworld/
/helloworld # python helloworld.py
Hello World!
Durch Ausführen des Befehls "exit" wird der Container beendet.
/helloworld # exit
Da der Container beim Start initialisiert wird, müssen Sie bei jedem Start die erforderlichen Pakete installieren.
Das ist mühsam. Erstellen Sie daher ein neues Docker-Image, damit die erforderlichen Pakete beim Start des Containers installiert werden.
Erstellen Sie eine Docker-Datei in Ihrem Projektordner.
Dockerfile
#Geben Sie das Basis-Docker-Image an
FROM python:3.7.5-alpine
#Geben Sie den Projektordner an
ARG project_dir=/helloworld/
# requirements.Kopieren Sie txt in den Container
ADD requirements.txt $project_dir
# requirements.Installieren Sie das in txt geschriebene Paket
WORKDIR $project_dir
RUN pip install -r requirements.txt
Führen Sie den Befehl "Docker Build" aus, um ein neues Docker-Image "helloworld" zu erstellen.
$ docker build -t helloworld .
Wenn Sie den Befehl "docker run" mit dem neu erstellten Docker-Image "helloworld" ausführen, wird das in der Datei "resources.txt" beschriebene Paket beim Start des Containers installiert.
$ docker run -it --rm -v /Users/username/work/python/helloworld:/helloworld helloworld /bin/sh
Recommended Posts