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
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
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
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.
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.
Versuchen Sie nun, sich mit dem zuvor festgelegten Anmeldekennwort anzumelden, nachdem Sie Zugriff haben.
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.
Ich konnte sicher darauf zugreifen.
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.
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.
Recommended Posts