[PYTHON] Machen Sie Jupyter Notebook zu einem Dienst unter CentOS

Einführung

Notieren Sie sich das Verfahren zum Erstellen der Python-Umgebung unter Cent OS. Dies ist nur ein Memo über den Konstruktionsvorgang. Wenn Sie also tatsächlich in der Produktionsumgebung bauen, werden diese Informationen nicht zum Erstellen und Betreiben der Produktionsumgebung verwendet. Die Umgebung ist wie folgt und wird mit einer virtuellen Maschine auf VMware erstellt.

Was ich tun möchte, ist wie folgt.

Nach dem folgenden Verfahren wird davon ausgegangen, dass das Betriebssystem bereits installiert ist. Als Konvention ist \ # der Root-Benutzer, $ der allgemeine Benutzer und >>> die Eingabeaufforderung, die angibt, dass Python ausgeführt wird. Da es das erste Mal ist, sind der Umweg und die Einstellabdeckung hervorragend.

Aktualisieren Sie es zunächst.

Betriebssystem-Update


# yum update 

Python 3 installieren

Ich möchte Python 3 anstelle von Python 2 verwenden, das als Standard verwendet werden kann. Installieren Sie es also.

Ausführungsbefehl


# yum update python3

Nach der Installation werden Versionsinformationen einschließlich der Installationsbestätigung angezeigt. Sie können sehen, dass Python 3.6.8 installiert ist.

Python-Versionsprüfung


# python3 --version
Python 3.6.8

Da wir python3 verwenden möchten, das diesmal mit dem Befehl python eingeführt wurde, legen Sie es fest.

Profilbearbeitung


# vim ~/.bashrc

Fügen Sie den folgenden Inhalt am Ende von .bashrc hinzu. Melden Sie sich nach dem Hinzufügen einmal ab und wieder an.

/root/.bashrc


alias python="python3" 
alias pip="pip3"

Überprüfen Sie als Test die Version mit dem Python-Befehl. Sie können sehen, dass python3 angegeben ist.

Python-Versionsprüfung


# python --version
Python 3.6.8

Installation von Anaconda

Da git für die Installation von pyenv erforderlich ist, installieren Sie zuerst git.

Git Installation


# yum install git

Installieren Sie pyenv.

Installieren Sie pyenv


# git clone https://github.com/yyuu/pyenv.git ~/.pyenv
# pyenv install -l | grep anaconda
  anaconda-1.4.0
  anaconda-1.5.0
  anaconda-1.5.1
  anaconda-1.6.0
  anaconda-1.6.1
  anaconda-1.7.0
  anaconda-1.8.0
  anaconda-1.9.0
  anaconda-1.9.1
  anaconda-1.9.2
  anaconda-2.0.0
  anaconda-2.0.1
  anaconda-2.1.0
  anaconda-2.2.0
  anaconda-2.3.0
  anaconda-2.4.0
  anaconda-4.0.0
  anaconda2-2.4.0
  anaconda2-2.4.1
  anaconda2-2.5.0
  anaconda2-4.0.0
  anaconda2-4.1.0
  anaconda2-4.1.1
  anaconda2-4.2.0
  anaconda2-4.3.0
  anaconda2-4.3.1
  anaconda2-4.4.0
  anaconda2-5.0.0
  anaconda2-5.0.1
  anaconda2-5.1.0
  anaconda2-5.2.0
  anaconda2-5.3.0
  anaconda2-5.3.1
  anaconda2-2018.12
  anaconda2-2019.03
  anaconda2-2019.07
  anaconda3-2.0.0
  anaconda3-2.0.1
  anaconda3-2.1.0
  anaconda3-2.2.0
  anaconda3-2.3.0
  anaconda3-2.4.0
  anaconda3-2.4.1
  anaconda3-2.5.0
  anaconda3-4.0.0
  anaconda3-4.1.0
  anaconda3-4.1.1
  anaconda3-4.2.0
  anaconda3-4.3.0
  anaconda3-4.3.1
  anaconda3-4.4.0
  anaconda3-5.0.0
  anaconda3-5.0.1
  anaconda3-5.1.0
  anaconda3-5.2.0
  anaconda3-5.3.0
  anaconda3-5.3.1
  anaconda3-2018.12
  anaconda3-2019.03
  anaconda3-2019.07
  anaconda3-2019.10
  anaconda3-2020.02

Installieren Sie die neueste Anaconda.

Installation von Anakonda


# pyenv install anaconda3-5.3.1

Nehmen Sie Einstellungen vor.

Anakonda-Einstellungen


# pyenv rehash
# pyenv global anaconda3-5.3.1
# echo 'export PATH="$PYENV_ROOT/versions/anaconda3-5.3.1/bin/:$PATH"' >> ~/.bashrc
# source ~/.bashrc
# conda update conda

Überprüfe die Version.

Überprüfen Sie die Version von conda


# conda --version
conda 4.8.4

Installieren Sie Qiskit

Nachdem die Installation von anaconda abgeschlossen ist, installieren Sie als nächstes Qiskit.

Installieren Sie Qiskit


# pip install qiskit

Überprüfen Sie, ob es installiert ist.

Bestätigung der Qiskit-Installation


# conda list | grep qiskit
qiskit                    0.21.0                   pypi_0    pypi
qiskit-aer                0.6.1                    pypi_0    pypi
qiskit-aqua               0.7.5                    pypi_0    pypi
qiskit-ibmq-provider      0.9.0                    pypi_0    pypi
qiskit-ignis              0.4.0                    pypi_0    pypi
qiskit-terra              0.15.2                   pypi_0    pypi

Überprüfen Sie als Nächstes die installierte Version von Qiskit.

Python-Ausführung


# python

Überprüfen Sie die Version von Qiskit


>>> import qiskit
>>> qiskit.__qiskit_version__
{'qiskit-terra': '0.15.2', 'qiskit-aer': '0.6.1', 'qiskit-ignis': '0.4.0', 'qiskit-ibmq-provider': '0.9.0', 'qiskit-aqua': '0.7.5', 'qiskit': '0.21.0'}

Wenn die Bestätigung abgeschlossen ist, drücken Sie Strg-D, um Python zu beenden.

Jupyter installieren

Versuchen Sie als nächstes, jupyter zu installieren. Als ich versuchte, den Befehl auszuführen, schien jupyter bereits installiert zu sein. Als ich es versuchte, wurde der folgende Fehler ausgegeben.

Jupiter-Ausführungsfehler


# jupyter --version
Traceback (most recent call last):
  File "/root/.pyenv/versions/anaconda3-5.3.1/bin/jupyter", line 7, in <module>
    from jupyter_core.command import main
ModuleNotFoundError: No module named 'jupyter_core'

Versuchen Sie einmal, jyyter von conda zu installieren.

Installation von Jupiter


# conda install jupyter

Dann wird der folgende Fehler ausgegeben und die Installation ist nicht abgeschlossen.

Fehler bei der Installation von Jupyter


failed with initial frozen solve. Retrying with flexible solve.
Solving environment: -erzwungene Kündigung

Ich habe Google ausprobiert und den folgenden Befehl ausgeführt.

Aktualisierung von conda


# conda update --all

Ich habe einen Fehler mit dem obigen Befehl erhalten. Als nächstes habe ich den folgenden Befehl als Test ausgeführt.

OpenCV-Installation


# conda install -c menpo opencv

Das hat gut funktioniert. Versuchen Sie erneut, jyyter zu installieren.

Fordern Sie die Jupyter-Installation erneut heraus


# conda install jupyter
Collecting package metadata (repodata.json): done
Solving environment: done

# All requested packages already installed.

Sieht aus wie es richtig installiert ist. Überprüfen Sie die Versionsinformationen.

Überprüfen Sie die Version von Jupyter


# jupyter --version
4.4.0

Es ist ordnungsgemäß installiert und funktioniert.

Richten Sie das Jupyter-Notizbuch ein.

Vorbereitung zum Starten von Jupiter


# jupyter --path
config:
    /root/.jupyter
    /root/.pyenv/versions/anaconda3-5.3.1/etc/jupyter
    /usr/local/etc/jupyter
    /etc/jupyter
data:
    /root/.local/share/jupyter
    /root/.pyenv/versions/anaconda3-5.3.1/share/jupyter
    /usr/local/share/jupyter
    /usr/share/jupyter
runtime:
    /run/user/1000/jupyter
# mkdir ~/.jupyter
# touch ~/.jupyter/jupyter_notebook_config.py
# mkdir ~/jupyter_files
# touch ~/jupyter_files/test.py
# ipython

Anmeldekennwort festlegen


Python 3.7.0 (default, Oct  9 2018, 10:31:47) 
Type 'copyright', 'credits' or 'license' for more information
IPython 6.5.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: from notebook.auth import passwd

In [2]: passwd()
Enter password: 
Verify password: 
Out[2]: 'sha1:da72b0981831:41b14f79bbfeda08322cfdb3a056a58fc70c65ea'

In [3]: exit

Notieren Sie sich den Hash-Wert des Out [2] -Kennworts in einem Texteditor usw., da dieser zum Bearbeiten der nächsten Konfigurationsdatei verwendet wird.

Konfigurationsdatei bearbeiten


vim ~/.jupyter/jupyter_notebook_config.py

Fügen Sie der Konfigurationsdatei Folgendes hinzu. Kopieren Sie für den Hash-Wert des Kennworts die Wertausgabe und fügen Sie sie in die Einstellung für das Anmeldekennwort ein.

py:/root/.jupyter/jupyter_notebook_config.py


c = get_config()

c.NotebookApp.ip = '*'
c.NotebookApp.open_browser = False
c.NotebookApp.port = 8888
c.NotebookApp.password = u'sha1:da72b0981831:41b14f79bbfeda08322cfdb3a056a58fc70c65ea'
c.NotebookApp.notebook_dir = '/root/jupyter_files/'

Starten Sie Jupyter Notebook. Diese Umgebung ist eine Testumgebung und wird vom Root-Benutzer festgelegt. Führen Sie daher den folgenden Befehl aus.

Starten Sie das Notizbuch


# jupyter notebook --allow-root

Versuchen Sie danach, mit einem Webbrowser auf http: // localhost: 8888 / zuzugreifen.

JN.png

Versuchen Sie nun, sich mit dem zuvor festgelegten Anmeldekennwort anzumelden, nachdem Sie Zugriff haben.

JNlogined.png

Ich konnte mich erfolgreich anmelden. Sie können auch die zuvor erstellte Bestätigungsdatei test.py überprüfen.

Machen Sie es anschließend über den Webbrowser des Hostcomputers zugänglich. Lassen Sie Port 8888 auf der Firewall zu.

Firewall-Berechtigungseinstellungen


# firewall-cmd --add-port=8888/tcp --zone=public --permanent
success
# firewall-cmd --reload
success

Versuchen Sie, über den Webbrowser des Host-Computers auf http://192.168.249.129:8888/ zuzugreifen.

JN_host.png

Ich konnte sicher darauf zugreifen.

Jupyter zu einem Dienst machen

Stellen Sie Jupyter so ein, dass es von systemd gesteuert werden kann. Überprüfen Sie zunächst den Pfad des Jupyter.

Überprüfen Sie den Pfad des Jupyter


# which jupyter
/root/.pyenv/versions/anaconda3-5.3.1/bin/jupyter

Definitionsdatei erstellen


# vim /etc/systemd/system/notebook.service

* Der folgende Inhalt kann nicht erfolgreich ausgeführt werden </ b>

/etc/systemd/system/notebook.service


[Unit]
Description = Jupyter Notebook

[Service]
Type=simple
PIDFile=/var/run/jupyter-notebook.pid
ExecStart=/root/.pyenv/versions/anaconda3-5.3.1/bin/jupyter notebook
WorkingDirectory=/root/
User=root
Group=root
Restart=always

[Install]
WantedBy = multi-user.target

Neuladen der Einstellungsdatei


# systemctl daemon-reload

Servicestart


# systemctl start notebook

Als ich den Status des Dienstes überprüfte, schlug dies fehl.

Service Statusprüfung(Fehler)


# systemctl status notebook
● notebook.service - Jupyter Notebook
   Loaded: loaded (/etc/systemd/system/notebook.service; disabled; vendor preset: disabled)
   Active: failed (Result: start-limit)seit Kim 2020-09-18 15:21:44 JST; 1min 8s ago
  Process: 18766 ExecStart=/root/.pyenv/versions/anaconda3-5.3.1/bin/jupyter notebook (code=exited, status=1/FAILURE)
 Main PID: 18766 (code=exited, status=1/FAILURE)

18. September 15:21:44 localhost.localdomain systemd[1]: notebook.service: main process exited, code=exited, status=1/FAILURE
18. September 15:21:44 localhost.localdomain systemd[1]: Unit notebook.service entered failed state.
18. September 15:21:44 localhost.localdomain systemd[1]: notebook.service failed.
18. September 15:21:44 localhost.localdomain systemd[1]: notebook.service holdoff time over, scheduling restart.
18. September 15:21:44 localhost.localdomain systemd[1]: Stopped Jupyter Notebook.
18. September 15:21:44 localhost.localdomain systemd[1]: start request repeated too quickly for notebook.service
18. September 15:21:44 localhost.localdomain systemd[1]: Failed to start Jupyter Notebook.
18. September 15:21:44 localhost.localdomain systemd[1]: Unit notebook.service entered failed state.
18. September 15:21:44 localhost.localdomain systemd[1]: notebook.service failed.

Als ich über die Ursache nachdachte, fiel mir ein, dass --allow-root beim ersten Start angegeben wurde, aber ich habe vergessen, es in dieser Einstellungsdatei anzugeben. Bearbeiten Sie die Einstellungsdatei wie folgt erneut.

/etc/systemd/system/notebook.service


[Unit]
Description = Jupyter Notebook

[Service]
Type=simple
PIDFile=/var/run/jupyter-notebook.pid
ExecStart=/root/.pyenv/versions/anaconda3-5.3.1/bin/jupyter notebook --allow-root
WorkingDirectory=/root/
User=root
Group=root
Restart=always

[Install]
WantedBy = multi-user.target

Lesen Sie die Einstellungsdatei erneut und starten Sie den Dienst.

Laden Sie die Einstellungsdatei neu und starten Sie den Dienst


# systemctl daemon-reload
# systemctl start notebook

Überprüfen Sie den Servicestatus.

Service Statusprüfung(Erfolg)


# systemctl status notebook
● notebook.service - Jupyter Notebook
   Loaded: loaded (/etc/systemd/system/notebook.service; enabled; vendor preset: disabled)
   Active: active (running)seit Kim 2020-09-18 15:29:38 JST; 3min 8s ago
 Main PID: 19068 (jupyter-noteboo)
    Tasks: 1
   CGroup: /system.slice/notebook.service
           └─19068 /root/.pyenv/versions/anaconda3-5.3.1/bin/python /root/.pyenv/versions/anaconda3-5.3.1/bin/jupyter-notebook --...

18. September 15:29:38 localhost.localdomain systemd[1]: Started Jupyter Notebook.
18. September 15:29:39 localhost.localdomain jupyter[19068]: [W 15:29:39.391 NotebookApp] WARNING: The notebook server is listeni...nded.
18. September 15:29:39 localhost.localdomain jupyter[19068]: [I 15:29:39.393 NotebookApp] The port 8888 is already in use, trying...port.
18. September 15:29:39 localhost.localdomain jupyter[19068]: [I 15:29:39.423 NotebookApp] JupyterLab extension loaded from /root/...erlab
18. September 15:29:39 localhost.localdomain jupyter[19068]: [I 15:29:39.423 NotebookApp] JupyterLab application directory is /ro...r/lab
18. September 15:29:39 localhost.localdomain jupyter[19068]: [I 15:29:39.426 NotebookApp] Serving notebooks from local directory:...files
18. September 15:29:39 localhost.localdomain jupyter[19068]: [I 15:29:39.426 NotebookApp] The Jupyter Notebook is running at:
18. September 15:29:39 localhost.localdomain jupyter[19068]: [I 15:29:39.426 NotebookApp] http://(localhost.localdomain or 127.0....8889/
18. September 15:29:39 localhost.localdomain jupyter[19068]: [I 15:29:39.427 NotebookApp] Use Control-C to stop this server and s...ion).
Hint: Some lines were ellipsized, use -l to show in full.

Dieses Mal möchte ich sehen, dass es sicher aufsteht. Aktivieren Sie die automatische Ausführung.

Aktivieren und überprüfen Sie die automatische Ausführung


# systemctl enable notebook
# systemctl is-enabled notebook
enabled

Der automatische Start wurde aktiviert. Zur Bestätigung habe ich nach dem Neustart des Gastbetriebssystems versucht, vom Hostcomputer mit der oben genannten URL darauf zuzugreifen, konnte jedoch sicher darauf zugreifen. Damit läuft das Jupyter Notebook immer und kann mit einem Webbrowser verwendet werden.

abschließend

Ich habe diesmal versucht und dachte, dass das Ausführen als Root-Benutzer nicht empfohlen wird und Befehle auch Optionen erfordern, was problematisch ist. Daher ist es besser, einen Dienstbenutzer zu erstellen und den Dienst als diesen Benutzer auszuführen. Fühlte. Wie ich in einem anderen Artikel schrieb, hatte ich auch das Gefühl, dass JupyterHub dafür besser geeignet ist.

Verweise

  • https://qiita.com/iamdaisuke/items/3671032a18f5c4bf37d1
  • https://qiskit.org/documentation/locale/ja/install.html
  • https://ideanotes.cloud/2020/01/29/ubuntu-anaconda-opencv-failed/

Recommended Posts

Machen Sie Jupyter Notebook zu einem Dienst unter CentOS
Machen Sie Unity Accelerator zu einem Dienst unter Linux
Erstellen Sie ein Jupyter-Notebook auf einem Remote-Server (CentOS).
Führen Sie Jupyter Notebook auf einem Remote-Server aus
Einfache Anzeige des Liniendiagramms auf dem Jupyter Notebook
Einführung des Jupyter Notebook in CentOS7
Hohe Charts im Jupyter-Notizbuch
PDF auf Jupyter Notebook anzeigen
Machen Sie Responder zu einem Daemon (Dienst)
Führen Sie Jupyter Notebook unter Windows aus
Eine sehr bequeme Möglichkeit, mit Jupyter Notebook zu präsentieren
Versuchen Sie, mit einem gemischten Gaußschen Modell auf Jupyter Notebook zu gruppieren
Ein Hinweis, wenn ich das Jupyter-Notizbuch unter Windows nicht öffnen kann
Formatieren mit autopep8 auf Jupyter Notebook
Post Jupyter Notebook als Blog-Beitrag
Machen wir einen Spot Sale Service 2
Machen wir einen Spot Sale Service 1
Erstellen Sie einen SlackBot-Dienst für Pepper
Wir stellen vor: Binder, einen kostenlosen Jupyter-Service
Erstellen Sie eine Python-Umgebung in Centos
Versuchen Sie, Jupyter Notebook auf einem Mac auszuführen
Erstellen Sie eine Python3-Umgebung unter CentOS7
Machen wir einen Spot Sale Service 3
Machen wir einen Jupyter-Kernel
Probieren Sie SVM mit scikit-learn auf Jupyter Notebook aus
Erstellen Sie eine Notebook-Pipeline mit Kedro + Papermill
Starten Sie das Jupiter-Notebook auf dem GPU-Server (Remote-Server).
Ein Memo mit Python2.7 und Python3 in CentOS
Klonen Sie das Github-Repository auf dem Jupyter-Notizbuch
PC-GPU-Prüfung am Jupyter-Notebook
Histogramm / Streudiagramm auf Jupyter Notebook anzeigen
Verwenden Sie vim-Tastenkombinationen in Jupyter Notebook, das mit Docker gestartet wurde
So richten Sie ein Jupyter-Notebook am SSH-Ziel ein (AWS EC2)
Installieren Sie matplotlib und zeigen Sie das Diagramm in Jupyter Notebook an
Probieren Sie das Zustandsraummodell aus (Jupyter Notebook + IR-Kernel).
Jupyter Notizbuch Memo
[Jupyter Notebook / Lab] Drei Möglichkeiten zum Debuggen auf Jupyter [Pdb]
Einführung in Jupyter Notebook
So machen Sie mehrere Kernel auf Jupyter auswählbar
Erstellen Sie eine Python-Umgebung mit ansible auf centos6
Leistungsstarkes Jupyter-Notizbuch
Aktivieren Sie Jupyter Notebook mit conda auf dem Remote-Server
Golang mit Jupyter
LINUX: Wie man Pfeiltasten macht, entspricht 2,4,6,8 auf Noten ohne zehn Tasten
[Pythonocc] Ich habe versucht, CAD auf einem Jupyter-Notebook zu verwenden
Jupyter auf AWS
Jupyter Notebook Passwort
Jupyter Notizbuch Memo
Erstellen Sie eine PYNQ-Umgebung auf Ultra96 V2 und melden Sie sich bei Jupyter Notebook an
Probieren Sie Apache Spark mit Jupyter Notebook (auf Local Docker) aus
Öffnen Sie das auf dem Server gestartete Jupyter-Notizbuch aus der Ferne
Jupyter Notebook beginnt nicht mit Fisch auf dem Mac
Von der Einführung von Flask unter CentOS bis zum Service unter Nginx und uWSGI
Starten Sie das Jupyter Notebook ganz einfach unter AWS und greifen Sie lokal zu
Machen wir einen Spot Sale Service 9 (Task Queue Edition)
Führen Sie Tensorflow von Jupyter Notebook unter Bash unter Ubuntu unter Windows aus
Rückblick auf die Erstellung eines Webdienstes mit Django 1
Überwachen Sie das Trainingsmodell mit TensorBord auf Jupyter Notebook
Machen Sie Ihren Cursor unter Linux zu einem Foto Ihrer Wahl
Lassen Sie einen Papagei LINE Bot mit AWS Cloud9 zurückgeben