Bereiten Sie die Python3-Umgebung mit CentOS7 vor

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.

Aktualisieren Sie es zunächst.

Ausführungsbefehl


# yum update 

Erstellen Sie als Nächstes einen Benutzer für jupyter.

Benutzer erstellen


# useradd jupyter
# passwd jupyter
Ändern Sie das Passwort für den Benutzer jupyter.
Neues Kennwort:
Bitte geben Sie Ihr neues Passwort erneut ein:
passwd:Alle Authentifizierungstoken wurden erfolgreich erneuert.

Installation von Anaconda

Laden Sie zunächst das Installationsprogramm der Version herunter, die Sie installieren möchten.

Laden Sie die Anaconda-Installationsshell herunter


# wget https://repo.continuum.io/archive/Anaconda3-5.3.1-Linux-x86_64.sh

Führen Sie als Nächstes das heruntergeladene Installationsprogramm aus. Zum Zeitpunkt der Ersteinstellung werden Sie nach dem Installationsverzeichnis gefragt, setzen jedoch / opt / anaconda3 / anstelle der Ersteinstellung. Ansonsten fahren Sie mit Ja fort.

Führen Sie die Installationsshell aus


# bash Anaconda3-5.3.1-Linux-x86_64.sh
...
Anaconda3 will now be installed into this location:
/root/anaconda3

  - Press ENTER to confirm the location
  - Press CTRL-C to abort the installation
  - Or specify a different location below

[/root/anaconda3] >>> /opt/anaconda3/  <-Ändern Sie das Installationsverzeichnis

Wenn Sie die Shell nicht einmal neu laden, wird der Pfad möglicherweise nicht geladen und der Befehl conda ist möglicherweise nicht verfügbar. Laden Sie ihn daher neu.

Shell-Profil neu laden


# source ~/.bashrc

Überprüfen Sie danach die Version als Testversion.

Anaconda Versionsprüfung


# conda --version
conda 4.8.4

Anaconda ist installiert und Versionsinformationen werden angezeigt.

Installieren Sie Qiskit

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

Installieren Sie zuerst gcc.

gcc Installation


# yum install gcc

Starten Sie als Nächstes die virtuelle Umgebung von Anaconda und installieren Sie dort qiskit.

Installieren Sie Qiskit


# conda create -n myenv python=3
# source activate myenv
(myenv) # pip install qiskit

Überprüfen Sie, ob es installiert ist.

Bestätigung der Qiskit-Installation


(myenv) # 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


(myenv) # python
Python 3.8.5 (default, Sep  4 2020, 07:30:14) 
[GCC 7.3.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.

Importieren Sie Qiskit und führen Sie den Versionsbestätigungsbefehl aus.

Ü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.

JupyterHub installieren

JupyterHub installieren


# conda install -c conda-forge jupyterhub
# conda install notebook

Erstellen Sie nach Abschluss der Installation eine Konfigurationsdatei.

Konfigurationsdatei generieren


(myenv) # cd /opt/
(myenv) # jupyterhub --generate-config
Writing default config to: jupyterhub_config.py
# ls -l
44 insgesamt
drwxr-xr-x.26 Wurzel Wurzel 4096 18. September 18:49 anaconda3
-rw-r--r--.1 Wurzel Wurzel 40275 18. September 19:00 jupyterhub_config.py
drwxr-xr-x.2 Wurzel Wurzel 6 31. Oktober 2018 rh

Sobald die Konfigurationsdatei erstellt wurde, bearbeiten Sie sie.

Konfigurationsdatei bearbeiten


(myenv) # vim jupyterhub_config.py 

Fügen Sie den folgenden Inhalt hinzu. Die beiden unteren Zeilen sind die Einstellungen, die für die Dienstkonvertierung erforderlich sind.

/opt/jupyterhub_config.py


c.Spawner.notebook_dir = '~/notebook'

c.Authenticator.whitelist = {'jupyter'}

c.Authenticator.admin_users = {'root'}

c.ConfigurableHTTPProxy.command = '/opt/anaconda3/envs/myenv/bin/configurable-http-proxy'

c.Spawner.cmd = ['/opt/anaconda3/envs/myenv/bin/jupyterhub-singleuser']

Erstellen Sie als Nächstes ein Verzeichnis für Benutzer, die JupyterHub verwenden.

Verzeichnis für Benutzer erstellen


# mkdir -p /home/jupyter/notebook
# chown jupyter:jupyter /home/jupyter/notebook

Starten Sie JupyterHub.

Starten Sie Jupyter Hub


# jupyterhub &

JupyterHub läuft auf Port 8000, erlauben Sie also Port 8000.

Firewall-Berechtigungseinstellungen


# firewall-cmd --add-port=8000/tcp --permanent 
success
# firewall-cmd --reload 
success

Versuchen Sie, vom Host-Computer aus auf http://192.168.249.130:8000/ zuzugreifen.

jupyterhub.png

Ich konnte darauf zugreifen.

Versuchen Sie als Nächstes, sich als Jupyter-Benutzer anzumelden.

jupyterhub_loggedin.png

Ich konnte mich einloggen.

Überprüfen Sie, ob Qiskit ausgeführt werden kann.

jupyterhub_qiskit.png

Ich konnte es ausführen.

JupyterHub zu einem Service machen

Machen Sie es schließlich zu einem Service.

Nehmen Sie verschiedene Einstellungen vor.

Einstellungen für den Jupyterhub-Dienst


# conda install --quiet --yes notebook jupyterhub nodejs configurable-http-proxy
# npm install -g configurable-http-proxy
# ln -s /usr/bin/nodejs /usr/bin/node
# npm -v
# npm cache clean -f
# npm install -g n
# n stable

Überprüfen Sie den Pfad des Befehls jupyterhub, um die Definitionsdatei für die Dienstregistrierung zu erstellen.

Überprüfen Sie den Pfad von Jupyterhub


(myenv) # which jupyterhub
/opt/anaconda3/envs/myenv/bin/jupyterhub

Sobald die Informationen erhalten wurden, erstellen Sie eine Definitionsdatei.

Definitionsdatei erstellen


(myenv) # vim /etc/systemd/system/jupyterhub.service

Fügen Sie den folgenden Inhalt hinzu.

/etc/systemd/system/jupyterhub.service


[Unit]
Description = JupyterHub

[Service]
Type=simple
PIDFile=/var/run/jupyterhub.pid
ExecStart=/opt/anaconda3/envs/myenv/bin/jupyterhub
WorkingDirectory=/opt/
Restart=always

[Install]
WantedBy = multi-user.target

Wenn die Definitionsdatei fertig ist, beginnen Sie mit dem Lesen.

Definitionsdatei lesen


# systemctl daemon-reload

Starten Sie nach dem Lesen den Dienst.

Servicestart


# systemctl start jupyterhub.service

Überprüfen Sie den Servicestatus. Es gab einige Fehler, aber ich konnte starten und mich anmelden. Qiskit funktioniert auch gut.

Service Statusprüfung


(myenv) # systemctl status jupyterhub.service
● jupyterhub.service - JupyterHub
   Loaded: loaded (/etc/systemd/system/jupyterhub.service; enabled; vendor preset: disabled)
   Active: active (running)seit Kim 2020-09-18 21:27:20 JST; 7min ago
 Main PID: 3291 (python)
    Tasks: 7
   CGroup: /system.slice/jupyterhub.service
           └─3307 node /opt/anaconda3/envs/myenv/bin/configurable-http-proxy --ip --port 8000 --api-ip 127.0.0.1 --api-port 8001 --error-target http://...
           ‣ 3291 /opt/anaconda3/envs/myenv/bin/python /opt/anaconda3/envs/myenv/bin/jupyterhub

18. September 21:27:21 localhost.localdomain jupyterhub[3291]: 21:27:21.575 [ConfigProxy] info: 201 POST /api/routes/
18. September 21:27:21 localhost.localdomain jupyterhub[3291]: [I 2020-09-18 21:27:21.577 JupyterHub app:2422] JupyterHub is now running at http://:8000
18. September 21:27:29 localhost.localdomain jupyterhub[3291]: [I 2020-09-18 21:27:29.928 JupyterHub log:174] 200 GET /hub/spawn-pending/jupyter (jup...29.88ms
18. September 21:27:33 localhost.localdomain jupyterhub[3291]: [I 2020-09-18 21:27:33.252 JupyterHub login:43] User logged out: jupyter
18. September 21:27:33 localhost.localdomain jupyterhub[3291]: [I 2020-09-18 21:27:33.262 JupyterHub log:174] 302 GET /hub/logout -> /hub/login (jupy...16.03ms
18. September 21:27:33 localhost.localdomain jupyterhub[3291]: [I 2020-09-18 21:27:33.276 JupyterHub log:174] 200 GET /hub/login (@::ffff:192.168.249.1) 8.34ms
18. September 21:27:40 localhost.localdomain jupyterhub[3291]: [I 2020-09-18 21:27:40.212 JupyterHub base:663] User logged in: jupyter
18. September 21:27:40 localhost.localdomain jupyterhub[3291]: [I 2020-09-18 21:27:40.213 JupyterHub log:174] 302 POST /hub/login?next= -> /hub/spawn...12.63ms
18. September 21:27:40 localhost.localdomain python[3291]: pam_loginuid(login:session): Error writing /proc/self/loginuid: Operation not permitted
18. September 21:27:40 localhost.localdomain python[3291]: pam_loginuid(login:session): set_loginuid failed
Hint: Some lines were ellipsized, use -l to show in full.

Aktivieren Sie schließlich die Service-Automatisierung. Selbst wenn das Betriebssystem heruntergefahren wird, wird der Dienst sofort nach dem Start gestartet, und Sie können jederzeit wie zuvor über Ihren Webbrowser auf Jupyter zugreifen.

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


# systemctl enable jupyterhub
# systemctl is-enabled jupyterhub
enabled

Nach dem Neustart des Gastbetriebssystems habe ich versucht, über den Webbrowser des Hostcomputers darauf zuzugreifen, und konnte erfolgreich darauf zugreifen und mich anmelden.

abschließend

Ich bin zu 90% zufrieden mit der Tatsache, dass ich eine Umgebung erstellen konnte, in der alle Benutzer Qiskit verwenden können, was ich diesmal tun wollte, und dass sie es durch Authentifizierung über einen Webbrowser verwenden können. Es gibt jedoch einige Fehler und Mängel bei der Konstruktion der Umgebung, daher möchte ich in Zukunft an diesen Bereichen arbeiten.

Obwohl ich nicht motiviert war, konnte ich alles in einem halben Tag zusammenstellen, sodass es genau richtig war, um sich nach morgen aufzuwärmen. Obwohl der Dienst von Jupyter Notebook reibungslos verlief, verursachte der Dienst von JupyterHub nacheinander Fehler, und es war schwierig, einen zu lösen. Daher hatte ich das Gefühl, dass ich ihn nicht ohne etwas erneut implementieren möchte. (Dafür gibt es diesen Artikel)

Zukünftige Aufgaben

[Referenz] Fehler, die aufgetreten sind

Verweise

Recommended Posts

Bereiten Sie die Python3-Umgebung mit CentOS7 vor
Bereiten Sie die CentOS 8-Umgebung mit Sakura VPS vor
Bereiten Sie die Java-Entwicklungsumgebung mit Atom vor
[Vagrant] Bereiten Sie die LAMP-Entwicklungsumgebung mit Vagrant vor (Centos + Apache + MySQL + PHP).
Erstellen Sie eine Umgebung, in der pip3 mit CentOS7 + Python3 verwendet werden kann
Bereiten Sie die Java-Entwicklungsumgebung mit VS Code vor
Bereiten Sie die Formatumgebung für "Rails" (VScode) vor.
[Memo] Erstellen Sie mit Docker ganz einfach eine CentOS 8-Umgebung
Bereiten Sie die JVM-Sprachentwicklungsumgebung mit WSL vor
Bereiten Sie eine Scraping-Umgebung mit Docker und Java vor
Verwenden von CentOS mit LXD
Installieren Sie Python 3 unter CentOS 7
Baue Growai mit Centos7
[Hinweis] Erstellen Sie eine Python3-Umgebung mit Docker in EC2
Bereiten Sie die Umgebung für Java11 und JavaFx mit Ubuntu 18.4 vor
Netzwerkinstallation CentOS 8 mit Kickstart.
Erstellen Sie mit Centos7 ein Softether-VPN.
[Docker] Rails 5.2-Umgebungskonstruktion mit Docker
Erstellen einer Docker-Umgebung mit WSL
Erstellen Sie mit VirtualBox eine virtuelle CentOS 8-Umgebung auf Ihrem Mac
Spannende Umweltprüfung mit mkmf
Offline-Umgebungskonstruktion CentOS Edition
Erstellen Sie mit Docker eine Vue3-Umgebung!
Erstellen Sie die Node.js-Umgebung mit Docker Compose
Erstellen Sie mit Docker eine lokale Couchbase-Umgebung
Umgebungsbau mit Docker für Anfänger
Erstellen Sie mit Docker eine SolrCloud-Überprüfungsumgebung
WordPress mit Docker Compose unter CentOS 8
Erstellen Sie mit Eclipse eine Jooby-Entwicklungsumgebung
[Umgebungskonstruktion mit Docker] Rails 6 & MySQL 8
Erstellen Sie mit Laradock eine Docker + Laravel-Umgebung
Wechseln Sie mit CentOS7-Serie + JDK-9.0.1 + JDK1.8.0 + Alternativen
Erstellen Sie mit CentOS7 + Nginx + pm2 + Nuxt.js eine Entwicklungsumgebung auf AWS EC2