Notez la procédure de construction de l'environnement Python sur Cent OS. Il ne s'agit que d'un mémo sur la procédure de construction, donc lors de la construction dans l'environnement de production, ces informations ne sont pas utilisées pour créer et exploiter l'environnement de production. L'environnement est le suivant et il est construit avec une machine virtuelle sur VMware.
Ce que je veux faire est le suivant.
--Installez Python 3 --Installation de Qiskit --Installation d'Anaconda --Installation de Jupyter --Service Jupyter
À partir de la procédure suivante, il est supposé que le système d'exploitation est déjà installé. Par convention, \ # est l'utilisateur root, $ est l'utilisateur général et >>> est l'invite indiquant que python est en cours d'exécution. Comme c'est la première fois à effectuer, le détour et la mise à couvert sont excellents.
Tout d'abord, mettez-le à jour.
Mise à jour du système d'exploitation
# yum update
Je veux utiliser Python 3 au lieu de Python 2 qui peut être utilisé en standard, alors installez-le.
Commande d'exécution
# yum update python3
Après l'installation, les informations de version, y compris la confirmation de l'installation, s'affichent. Vous pouvez voir que Python 3.6.8 est installé.
Vérification de la version Python
# python3 --version
Python 3.6.8
De plus, puisque nous voulons utiliser python3 introduit cette fois avec la commande python, définissez-le.
Modification du profil
# vim ~/.bashrc
Ajoutez le contenu suivant à la fin de .bashrc. Après l'ajout, déconnectez-vous une fois et reconnectez-vous.
/root/.bashrc
alias python="python3"
alias pip="pip3"
En guise de test, vérifiez la version avec la commande python. Vous pouvez voir que python3 est spécifié.
Vérification de la version Python
# python --version
Python 3.6.8
Puisque git est requis pour installer pyenv, installez d'abord git.
installation de git
# yum install git
Installez pyenv.
Installez 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
Installez le dernier anaconda.
Installation d'anaconda
# pyenv install anaconda3-5.3.1
Faites les réglages.
paramètres anaconda
# 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
Vérifiez la version.
Vérifiez la version de conda
# conda --version
conda 4.8.4
Maintenant que l'installation d'anaconda est terminée, installez Qiskit ensuite.
Installez Qiskit
# pip install qiskit
Vérifiez s'il est installé.
Confirmation de l'installation de Qiskit
# 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
Ensuite, vérifiez la version installée de Qiskit.
exécution python
# python
Vérifiez la version de 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'}
Lorsque la confirmation est terminée, appuyez sur Ctrl-D pour quitter python.
Ensuite, essayez d'installer jupyter. Lorsque j'ai essayé de terminer la commande, il semble que jupyter était déjà installé, donc lorsque je l'ai exécuté, l'erreur suivante a été générée.
erreur d'exécution jupyter
# 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'
Essayez d'installer jupyter à partir de conda une fois.
installation de jupyter
# conda install jupyter
Ensuite, l'erreur suivante est générée et l'installation n'est pas terminée.
Erreur lors de l'installation de jupyter
failed with initial frozen solve. Retrying with flexible solve.
Solving environment: -résiliation forcée
J'ai essayé google et exécuté la commande suivante.
mise à jour de conda
# conda update --all
J'ai eu une erreur avec la commande ci-dessus. Ensuite, j'ai exécuté la commande suivante à titre d'essai.
Installation d'OpenCV
# conda install -c menpo opencv
Cela a bien fonctionné. Essayez à nouveau d'installer jupyter.
Re-défi l'installation de Jupyter
# conda install jupyter
Collecting package metadata (repodata.json): done
Solving environment: done
# All requested packages already installed.
On dirait qu'il est correctement installé. Vérifiez les informations de version.
Vérifiez la version de jupyter
# jupyter --version
4.4.0
Il est correctement installé et fonctionne.
Configurez Jupyter Notebook.
Se préparer à démarrer Jupyter
# 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
Définition du mot de passe de connexion
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
Notez la valeur de hachage du mot de passe Out [2] dans un éditeur de texte, etc., car elle sera utilisée pour éditer le fichier de configuration suivant.
Modifier le fichier de configuration
vim ~/.jupyter/jupyter_notebook_config.py
Ajoutez ce qui suit au fichier de configuration. Pour la valeur de hachage du mot de passe, copiez et collez la valeur de sortie dans le paramètre de mot de passe de connexion.
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/'
Démarrez Jupyter Notebook. Cet environnement est un environnement d'essai et est défini par l'utilisateur root, alors exécutez la commande suivante.
Lancer le notebook
# jupyter notebook --allow-root
Après cela, essayez d'accéder à http: // localhost: 8888 / à l'aide d'un navigateur Web.
Maintenant que vous avez accès, essayez de vous connecter avec le mot de passe de connexion que vous avez défini précédemment.
J'ai pu me connecter avec succès. Vous pouvez également consulter le fichier de confirmation test.py créé précédemment.
Ensuite, rendez-le accessible à l'aide du navigateur Web de la machine hôte. Autorisez le port 8888 sur le pare-feu.
Paramètres d'autorisation du pare-feu
# firewall-cmd --add-port=8888/tcp --zone=public --permanent
success
# firewall-cmd --reload
success
Essayez d'accéder à http://192.168.249.129:8888/ à partir du navigateur Web de la machine hôte.
J'ai pu y accéder en toute sécurité.
Définissez Jupyter pour qu'il puisse être contrôlé par systemd. Tout d'abord, vérifiez le chemin de jupyter.
Vérifiez le chemin de jupyter
# which jupyter
/root/.pyenv/versions/anaconda3-5.3.1/bin/jupyter
Créer un fichier de définition
# vim /etc/systemd/system/notebook.service
* Le contenu suivant ne peut pas être exécuté avec succès </ 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
Recharger le fichier de paramètres
# systemctl daemon-reload
Début du service
# systemctl start notebook
Lorsque j'ai vérifié l'état du service, il a échoué.
Vérification de l'état du service(Échec)
# systemctl status notebook
● notebook.service - Jupyter Notebook
Loaded: loaded (/etc/systemd/system/notebook.service; disabled; vendor preset: disabled)
Active: failed (Result: start-limit)depuis 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 septembre 15:21:44 localhost.localdomain systemd[1]: notebook.service: main process exited, code=exited, status=1/FAILURE
18 septembre 15:21:44 localhost.localdomain systemd[1]: Unit notebook.service entered failed state.
18 septembre 15:21:44 localhost.localdomain systemd[1]: notebook.service failed.
18 septembre 15:21:44 localhost.localdomain systemd[1]: notebook.service holdoff time over, scheduling restart.
18 septembre 15:21:44 localhost.localdomain systemd[1]: Stopped Jupyter Notebook.
18 septembre 15:21:44 localhost.localdomain systemd[1]: start request repeated too quickly for notebook.service
18 septembre 15:21:44 localhost.localdomain systemd[1]: Failed to start Jupyter Notebook.
18 septembre 15:21:44 localhost.localdomain systemd[1]: Unit notebook.service entered failed state.
18 septembre 15:21:44 localhost.localdomain systemd[1]: notebook.service failed.
Quand j'ai pensé à la cause, je me suis souvenu que --allow-root avait été donné au premier démarrage, mais j'ai oublié de le donner dans ce fichier de paramètres. Modifiez à nouveau le fichier de paramètres comme suit.
/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
Relisez le fichier de paramètres et démarrez le service.
Rechargement du fichier de paramètres et démarrage du service
# systemctl daemon-reload
# systemctl start notebook
Vérifiez l'état du service.
Vérification de l'état du service(Succès)
# systemctl status notebook
● notebook.service - Jupyter Notebook
Loaded: loaded (/etc/systemd/system/notebook.service; enabled; vendor preset: disabled)
Active: active (running)depuis 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 septembre 15:29:38 localhost.localdomain systemd[1]: Started Jupyter Notebook.
18 septembre 15:29:39 localhost.localdomain jupyter[19068]: [W 15:29:39.391 NotebookApp] WARNING: The notebook server is listeni...nded.
18 septembre 15:29:39 localhost.localdomain jupyter[19068]: [I 15:29:39.393 NotebookApp] The port 8888 is already in use, trying...port.
18 septembre 15:29:39 localhost.localdomain jupyter[19068]: [I 15:29:39.423 NotebookApp] JupyterLab extension loaded from /root/...erlab
18 septembre 15:29:39 localhost.localdomain jupyter[19068]: [I 15:29:39.423 NotebookApp] JupyterLab application directory is /ro...r/lab
18 septembre 15:29:39 localhost.localdomain jupyter[19068]: [I 15:29:39.426 NotebookApp] Serving notebooks from local directory:...files
18 septembre 15:29:39 localhost.localdomain jupyter[19068]: [I 15:29:39.426 NotebookApp] The Jupyter Notebook is running at:
18 septembre 15:29:39 localhost.localdomain jupyter[19068]: [I 15:29:39.426 NotebookApp] http://(localhost.localdomain or 127.0....8889/
18 septembre 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.
Cette fois, je veux le voir se tenir debout en toute sécurité. Activez l'exécution automatique.
Activer et vérifier l'exécution automatique
# systemctl enable notebook
# systemctl is-enabled notebook
enabled
Le démarrage automatique a été activé. Pour confirmation, après avoir redémarré le système d'exploitation invité, j'ai essayé d'y accéder à partir de la machine hôte avec l'URL ci-dessus, mais j'ai pu y accéder en toute sécurité. Avec cela, le bloc-notes Jupyter est toujours en cours d'exécution et peut être utilisé à l'aide d'un navigateur Web.
J'ai essayé cette fois et j'ai pensé qu'il n'était pas recommandé de s'exécuter en tant qu'utilisateur root, et c'est gênant car la commande nécessite également des options, il est donc préférable de créer un utilisateur de service et d'exécuter le service en tant qu'utilisateur. Se sentait. De plus, comme je l'ai écrit dans un autre article, j'ai senti que JupyterHub était mieux pour faire cela.
Recommended Posts