Schreiben Sie über das Erstellen einer Python-Umgebung zum Schreiben von Qiita Qiita

Schreiben wir zum ersten Mal seit langer Zeit einen Qiita-Artikel im maschinellen Lernsystem! !! !! Ich dachte, aber jedes Mal, wenn es schwierig war, die Umgebung zu erstellen, war es ein Ärger, also war es ein Meta-ähnliches, dass ich versuchte, eine Umgebung dafür zu erstellen? Ich möchte einen Artikel schreiben.

Überblick

In diesem Artikel möchte ich darüber schreiben, wie Sie mit Docker-compose auf einfache Weise eine unabhängige Python-Umgebung einrichten und über einen Browser eine Verbindung herstellen können. Wir werden auch darüber schreiben, wie Code interaktiv von VSCode ausgeführt wird und wie über einen Browser zugegriffen werden kann! Auch wenn diese nicht zum Schreiben von Qiita bestimmt sind, denke ich, dass sie Anfragen wie "Ich möchte es in einer sauberen Ausführungsumgebung ausführen" beantworten können!

Annahme

Dieser Artikel behandelt nicht die Einführung von Docker, Docker-Compose und VS Code. Wenn Sie es nachschlagen, wird es leicht herauskommen (obwohl Docker unter Windows schwierig zu sein scheint). Da ich mich auf Datenwissenschaft spezialisiert habe, ist die Programmiersprache Python3. Ich werde nicht im Detail schreiben, aber R wird auch teilweise unterstützt. Da ich an Apple glaube, verwende ich Mac als Betriebssystem, aber ich denke, dass es wahrscheinlich in jeder Umgebung funktionieren wird, solange ich Docker verwenden kann.

Verfahren

In diesem Artikel werden wir die folgenden Schritte ausführen:

  1. Laden Sie Dockerfile herunter
  2. Erstellen Sie die Datei docker-compose.yml
  3. Starten Sie den Container über Docker-Compose und greifen Sie über den Browser zu
  4. (Bonus) Komfortable Codierung mit VSCodes Remote Desktop und der Erweiterung von jupyter

1. Laden Sie Dockerfile herunter

Der offizielle Jupiter-Github Docker-Stacs-Repository verfügt über zahlreiche Tools zum Erstellen einer Python-Umgebung mit Jupyter. Wenn Sie beispielsweise Deep Learning mit Tensorflow durchführen möchten, gehen Sie zu Tensorflow-Notizbuch und es sieht wie folgt aus. Sie können sehen, dass sich eine Docker-Datei in befindet. image.png

In dieser Docker-Datei

ARG BASE_CONTAINER=jupyter/scipy-notebook

Es gibt einen Teil namens, aber dies soll eine zusätzliche Operation sein, die auf [scipy-notebook] basiert (https://github.com/jupyter/docker-stacks/blob/master/scipy-notebook/Dockerfile). Es ergibt Sinn. Und wenn Sie sich scipy-notebook ansehen, dasselbe

ARG BASE_CONTAINER=jupyter/minimal-notebook

Es steht geschrieben, dass. Dies liegt daran, dass die Umgebung für Tensorflow die Umgebung für Scipy (für Data Science mit Basic Python) und Tensorflow hinzugefügt wird und die Umgebung für Scipy die Umgebung ist, in der Scikit-Learn und Pandas zur Minimalumgebung hinzugefügt werden. Es bedeutet, dass es gibt. Ich werde nicht auf Details eingehen, aber es gibt andere Spark-Umgebungen und R-Umgebungen, und wenn Sie die Docker-Datei nach Bedarf verwenden, wird die Umgebung auf einmal gestartet! Da es sich um einen Docker handelt, müssen Sie, wenn Sie eine Bibliothek haben, die Sie persönlich hinzufügen möchten, nur ein wenig hinzufügen, was sehr praktisch ist!

Öffnen Sie also zuerst das Verzeichnis, das Sie vom Terminal aus ausführen möchten, und klonen Sie dieses Repository.

$ git clone https://github.com/jupyter/docker-stacks.git

Und zum Beispiel, wenn Sie ein Basis-Notebook verwenden möchten

$ cp -R ./docker-stacks/base-notebook ./

Wenn Sie das Tool als solches kopieren, ist der Download abgeschlossen.

2. Erstellen Sie die Datei docker-compose.yml

Es ist mühsam, jedes Mal jupyter zu starten oder einen Befehl zu schreiben, der den Port angibt, daher werde ich ihn einfach mit Docker-Compose starten.

docker-compose.yml


version: '3'
services:
  #Dienstname jupyterlab(Containername)Einstellen
  jupyterlab:
    #Aus Dockerfile erstellen(Um zusätzliche Einstellungen schreiben zu können)
    build:
      context: .
      dockerfile: Dockerfile

    #Gastgeber./Arbeit des Containers/home/Auf Jovyan montieren
    # Jovian means "related to Jupiter"
    volumes:
       - "./work:/home/jovyan"
      
    #Benutzer einstellen
    user: root
    environment:
      B_UID: 1000
      NB_GID: 100
      GRANT_SUDO: "yes"

    #Ermöglichen Sie den Zugriff auf das Gerät
    privileged: true

    #Ordnen Sie Host 8888 dem Container 8888 zu
    ports:
      - "8888:8888"

    #Starten Sie neu, sofern nicht gestoppt
    restart: unless-stopped

    #Starten Sie jupyterlab, nachdem Sie den Container gestartet haben
    command: start.sh jupyter lab --NotebookApp.token=''

Es ist in Ordnung, wenn Sie die obige Datei in derselben Ebene wie die Docker-Datei erstellen (ich befinde mich direkt unter dem Basis-Notebook-Verzeichnis). Wenn jedoch Port 8888 vom Host verwendet wird, empfiehlt es sich, XXXX: 8888 auf eine andere Nummer festzulegen.

3. Starten Sie den Container über Docker-Compose und greifen Sie über den Browser zu

Nachdem Sie die oben genannten Schritte ausgeführt haben, gehen Sie zum Terminal und gehen Sie zur gleichen Ebene wie docker-compose.yml.

$ docker-compose up -d

Schlag einfach. Geben Sie dann beim Start localhost: 8888 in den Browser ein![Image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265221/f45f76e0-4847 -8d03-4309-ddb2a79e5cd6.png) Das Jupyter-Labor wird so geöffnet. Es ist wirklich einfach. Da das Volume auf ./work / home / jovyan eingestellt ist, wird eine Datei, die von der Startseite von jupyterlab aus erstellt wird, auf der Hostseite in ./work angezeigt. Damit ist die Erstellung der Python-Umgebung abgeschlossen. Alles, was Sie tun müssen, ist, die erforderlichen Pakete gemäß dem Artikel zu installieren, den Sie schreiben möchten, und die Docker-Datei für die Reproduzierbarkeit freizugeben!

4. (Bonus) Komfortable Codierung mit VSCodes Remote Desktop und der Erweiterung von jupyter

Dies ist genug, aber dieses Mal werden wir herausfordern, eine interaktive Ausführungsumgebung mit VS Code zu erstellen. Dies hat den Vorteil, dass Sie die py-Datei noch teilweise ausführen können. Ich denke, es ist sehr praktisch, schwierige Prozesse wie das Refactoring nur für ipynb-Dateien einfach zu debuggen und zu schreiben.

Dann werde ich sofort mit der Arbeit beginnen. Wenn VS-Code mit Docker und Remotedesktop-Erweiterung installiert ist, drücken Sie Befehlstaste + Umschalttaste + P, um die Registerkarte Befehlsoperation wie unten gezeigt zu öffnen. image.png Verwenden Sie Ordner in Container öffnen, um das soeben festgelegte Werkzeug zu öffnen. (In meinem Fall öffnen Sie das Basis-Notebook) image.png

Wenn Sie nun nach Config gefragt werden, wählen Sie From Docker-Compose. Dann warte eine Weile, image.png Wenn ein solcher Bildschirm geöffnet wird, ist der Zugriff auf den Container vorerst erfolgreich.

Wenn Sie von Jupyter sprechen, geben Sie in der Erweiterungssuche jupyter ein und installieren Sie dieses oben angezeigte. image.png

Wenn die Installation abgeschlossen ist, wird die Schaltfläche "Neu laden erforderlich" wie unten gezeigt angezeigt. Drücken Sie sie zum erneuten Laden. image.png

Nach dem erneuten Laden erstellen wir eine Python-Datei, indem wir in ./work entsprechend jupyter_test.py festlegen. Geben Sie dann "# %%" wie unten gezeigt ein und Sie sehen Befehle wie "Run Cell" darüber! image.png Wenn Sie diese Run Cell drücken, wird der im Block bis zum nächsten "# %%" geschriebene Code interaktiv ausgeführt. Wenn Sie dies bestätigen können, sind Sie erfolgreich!

Zusammenfassung

Dieses Mal stellte ich mit der Motivation, einen Artikel über Qiita zu schreiben, vor, wie man auf einfache Weise eine saubere und reproduzierbare Python-Ausführungsumgebung einrichtet, und stellte sogar vor, wie man sie interaktiv mit VS Code ausführt. Selbst wenn Sie kein Blog schreiben, ist es praktisch, mehrere unabhängige Python-Umgebungen mit einem einzigen Befehl vorzubereiten. Immerhin wurde mir wieder klar, dass Docker erstaunlich ist (Wortschatz). In Zukunft möchte ich einige Artikel schreiben, die für die Datenwissenschaft in dieser Umgebung wertvoll sind. Danke, dass du bis zum Ende zugesehen hast! !!

Recommended Posts

Schreiben Sie über das Erstellen einer Python-Umgebung zum Schreiben von Qiita Qiita
[Mac] Erstellen einer virtuellen Umgebung für Python
Erstellen einer Python-Entwicklungsumgebung für die KI-Entwicklung
Wie wäre es mit Anaconda zum Erstellen einer maschinellen Lernumgebung mit Python?
Denken Sie daran, eine Python 3-Umgebung in einer Mac-Umgebung zu erstellen
Erstellen einer virtuellen Python-Umgebung
Erstellen einer virtuellen Python-Umgebung
Erstellen einer Python-Umgebung mit pyenv, pyenv-virtualenv, Anaconda (Miniconda)
Erstellen einer R- und Python Docker-Arbeitsumgebung
Vorgehensweise zum Erstellen einer CDK-Umgebung unter Windows (Python)
Python-Umgebungskonstruktion für Programmieranfänger (Mac OS)
Konstruktionsnotiz für eine maschinelle Lernumgebung von Python
Erstellen einer Python-Umgebung auf einem Mac
Erstellen einer Python-Umgebung unter Ubuntu
Erstellen einer virtuellen Umgebung mit Python 3
Aufbau einer Python-Umgebung für künstliche Intelligenz (Chainer / TensorFlow / CSLAIER)
Erstellen einer Entwicklungsumgebung für Android-Apps - Erstellen von Android-Apps mit Python
Erstellen einer Hy-Umgebung für Lisper, der Python nicht berührt hat
[Python] Erstellen einer virtuellen Python-Umgebung für das Pyramiden-Tutorial (Zusammenfassung)
[Pyenv] Erstellen einer Python-Umgebung mit Ubuntu 16.04
Erstellen einer Docker-Arbeitsumgebung für R und Python 2: Japanische Unterstützung
Erstellen einer Windows 7-Umgebung für eine Einführung in das maschinelle Lernen mit Python
Erstellen wir eine virtuelle Umgebung für Python
Vom Aufbau einer Python-Umgebung für unerfahrene Personen bis zur Hello-Welt
Erstellen einer Python 3.6-Umgebung mit Windows + PowerShell
Erstellen einer Conda-Umgebung für ROS-Benutzer
Erstellen einer virtuellen Umgebung für Mayavi für Python 3.6-, Anaconda- und Spyder-Benutzer
Selen + WebDriver (Chrome) + Python | Erstellen einer Umgebung zum Scraping
Erstellt einen Python-Wrapper für die Qiita-API
Erstellen einer Python-Umgebung mit virtualenv und direnv
Erstellen einer Umgebung zum Ausführen von Python-Skripten (für Mac)
Erstellen einer Anaconda-Umgebung für Python mit pyenv
Ein Memo, das ich in Python zusammengeführt habe
[Python] Webentwicklungsvorbereitung (Erstellen einer virtuellen Umgebung)
Befehle zum Erstellen einer Python3-Umgebung mit virtualenv
Verfahren zum Erstellen einer Python-Isolationsumgebung (venv-Umgebung)
Hinweise zum Erstellen einer Python-Umgebung durch Anfänger
Erstellen einer Python-Umgebung auf dem Sakura VPS-Server
Über Python für Schleife
Über Python für ~ (Bereich)
Informationen zur Python-Entwicklungsumgebung
Erstellen Sie eine Python-Umgebung
Wartung der Python-Umgebung für Projekte
Empfehlung zum Erstellen einer tragbaren Python-Umgebung mit conda
Aufbau einer Trainingsumgebung für Penetrationstests mit Naumachia
Erstellen Sie mit pyenv-virtualenv eine Python-Umgebung für jedes Verzeichnis
Erstellen einer Umgebung für die Verarbeitung natürlicher Sprache mit Python
Ein Memo zum Erstellen einer Django (Python) -Anwendung mit Docker
conda Hinweis: Erstellen einer Python-Umgebung mit Spacon ITO
Python-Memo (für mich): Über die Entwicklungsumgebung virtualenv
Fabric unterstützt Python 3
Aufbau einer Python-Umgebung für Mac
Python3-Umgebungskonstruktion (für Anfänger)
Memorandum über Korrelation [Python]
Ein Memorandum über den Python-Mock
[Zum Organisieren] Python-Entwicklungsumgebung
Erstellen Sie die Python-Umgebung offline
Über "für _ in range ():" von Python