[PYTHON] Introduction de Jupyter Notebook dans CentOS7

1. Objet

Installez Jupyter Notebook dans CentOS sur la machine virtuelle. De plus, il sera possible d'accéder et d'exécuter avec un navigateur à partir d'une machine distante telle qu'une machine hôte.

2. Environnement

Machine hôte Constitution
OS OS X 10.11.6
Version de VirtualBox 5.1.18
Machine virtuelle Constitution
OS CentOS 7.3 (minimal)
Capacité mémoire 512MB
Nombre de cœurs de processeur 1 noyau
Capacité de stockage 8GB
paramètres réseau Adaptateur de pont

La méthode d'installation de VirtualBox et CentOS est omise.

3. Présentation

3.1. Mettre à jour les packages existants avec Yum

Miam mise à jour


$ sudo yum update -y

3.2. Présentez ce dont vous avez besoin avec Anaconda

Présentation d'Anaconda



#Obtenez Anaconda avec curl
$ curl https://repo.continuum.io/archive/Anaconda3-4.3.1-Linux-x86_64.sh -O
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  474M  100  474M    0     0  3431k      0  0:02:21  0:02:21 --:--:-- 3837k

#Introduction de bzip2
#Requis pour l'introduction d'Anaconda
#S'il est minime, il n'est pas installé
$ sudo yum install bzip2 -y

#Exécuter le fichier sh
$ bash ./Anaconda3-4.3.1-Linux-x86_64.sh 

#Vérifier la version de Python
$ python --version
Python 3.6.0 :: Anaconda 4.3.1 (64-bit)

#Vérifiez la version de Jupyter
$ jupyter --version
4.2.1

3.3. Exécution de JupyterNotebook

Exécuter le bloc-notes Jupyter


$ jupyter notebook

Assurez-vous que Jupyter Notebook peut être démarré. Cependant, dans cet état, le bloc-notes Jupyter n'est pas accessible à partir de l'ordinateur distant. Par conséquent, modifiez le fichier de configuration afin qu'il puisse être connecté de l'extérieur.

4. Autoriser la connexion à distance

4.1. Créer un fichier de configuration

#Assurez-vous que votre répertoire personnel est dans le chemin du fichier de configuration
$ jupyter --path

#Créez un fichier de configuration dans votre répertoire personnel
$ mkdir ~/.jupyter
$ touch ~/.jupyter/jupyter_notebook_config.py

4.2. Édition du fichier de configuration

py3:~/.jupyter/jupyter_notebook_config.py



c = get_config()

c.NotebookApp.ip = '*'
c.NotebookApp.open_browser = False
c.NotebookApp.port = 8888

4.3. Modification de firewalld

Ajoutez une règle à firewalld pour autoriser l'accès au port 8888 depuis l'extérieur.

Ouvrir le port 8888


$ sudo firewall-cmd --add-port=8888/tcp --zone=public --permanent
success
$ sudo firewall-cmd --reload
success
$ sudo firewall-cmd --list-all --zone=public
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: enp0s3 enp0s8
  sources: 
  services: dhcpv6-client http ssh
  ports: 8888/tcp
  protocols: 
  masquerade: no
  forward-ports: 
  sourceports: 
  icmp-blocks: 
  rich rules: 

4.4. Définition du mot de passe de connexion

4.4.1. Générer une chaîne cryptée iPython

#Lancez iPython
$ ipython

#Charger la bibliothèque pour générer une chaîne chiffrée
In [1]: from notebook.auth import passwd

#Entrez le mot de passe pour générer une chaîne cryptée
In [2]: passwd()
Enter password: 
Verify password: 
Out[2]: 'sha1:(Chaîne cryptée)'

#Sortez d'iPython
In [3]:                                                                                                                                               
Do you really want to exit ([y]/n)? y

4.4.2. Ecrire la chaîne cryptée dans le fichier de configuration Jupyter

py3:~/.jupyter/jupyter_notebook_config.py



c.NotebookApp.password = u'sha1:(4.4.1.(Chaîne de caractères générée par)'

4.5. Exécuter Jupyter Notebook

Exécuter le bloc-notes Jupyter


$ jupyter notebook

Après avoir démarré le Jupyter Notebook, accédez à l'adresse IP 8888 attribuée à la machine en cours d'exécution.

JupyterNotebook ログイン画面

Vous serez invité à entrer le mot de passe, alors entrez le mot de passe que vous avez défini précédemment.

JupyterNotebook ホーム画面

Si la connexion réussit, une liste de fichiers dans le répertoire de base s'affiche.

5.Faites de JupyterNotebook un service avec systemd

5.1. Créer un fichier de définition d'unité

#Devenir root
$ su root

#Vérifiez le chemin de Jupyter
\# which jupyter

#Créer un fichier de définition d'unité
\# touch /etc/systemd/system/notebook.service

5.2. Édition du fichier de définition d'unité

[Unit]
Description = Jupyter Notebook

[Service]
Type=simple
PIDFile=/var/run/jupyter-notebook.pid
ExecStart='Chemin absolu vers Jupyter' notebook
WorkingDirectory='Le chemin du répertoire personnel de l'utilisateur qui a installé Anaconda'
User='Nom d'utilisateur qui a introduit Anaconda'
Group='Nom d'utilisateur qui a introduit Anaconda'
Restart=always

[Install]
WantedBy = multi-user.target

--Dans ExecStart, entrez la commande avec notebook comme argument dans le chemin Jupyter confirmé dans 5.1. --Spécifiez le chemin du répertoire personnel de l'utilisateur qui a installé Anaconda dans WorkingDirectory.

5.3. Obtenir une liste des unités enregistrées

\# systemctl list-unit-files --type=service

notebook.service                            disabled

Confirmez que le fichier Unit défini précédemment existe dans la liste de sortie.

5.4. Configuré pour s'exécuter au démarrage

#Configurer Jupyter pour qu'il démarre automatiquement au démarrage
\# systemctl enable notebook

#Démarrer le service
\# systemctl start notebook

#Vérifiez si Jupyter fonctionne correctement
\# systemctl status notebook
● notebook.service - Jupyter Notebook
   Loaded: loaded (/etc/systemd/system/notebook.service; enabled; vendor preset: disabled)
   Active: active (running)depuis le mois 2017-03-20 21:27:49 JST; 2s ago

#Redémarrez et assurez-vous que Jupyter est en cours d'exécution
\# reboot

6. Appliquer SSL

6.1. Créer un certificat de serveur SSL et une clé privée à l'aide d'OpenSSL

Dans Utilisation de SSL pour la communication cryptée, vous pouvez créer votre propre certificat et clé privée. La commande suivante est donnée à titre d'exemple.

$ openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout mykey.key -out mycert.pem
Generating a 1024 bit RSA private key

En ce qui concerne la signification des arguments de la commande OpenSSL, Créer une clé privée et CSR en utilisant CentOS7.2 64 bits OpenSSL, et créer un certificat de serveur SSL auto-signé Vous pouvez le découvrir en lisant "Créer un certificat de serveur SSL auto-signé" dans linux / ssl.html).

Pour la commande ci-dessus

--Créez une clé privée et créez un CSR en même temps

Tu peux voir ça.

6.2. Édition du fichier de configuration

Placez le certificat et la clé privée créés en 6.1. Dans le dossier _ ~ / .jupyter_.

Déplacement d'un auto-certificat et d'un fichier de clé privée


$ mv mycert.pem ~/.jupyter/
$ mv mykey.key ~/.jupyter/

Modifiez l'emplacement du certificat et de la clé privée dans le fichier de configuration.

py3:~/.jupyter/jupyter_notebook_config.py


c.NotebookApp.certfile = u'${Chemin absolu vers le répertoire personnel}/.jupyter/mycert.pem'
c.NotebookApp.keyfile = u'${Chemin absolu vers le répertoire personnel}/.jupyter/mykey.key'

6.3. Redémarrez le service et accédez via HTTPS

$ sudo systemctl restart notebook

$ sudo systemctl status notebook
● notebook.service - Jupyter Notebook
   Loaded: loaded (/etc/systemd/system/notebook.service; enabled; vendor preset: disabled)
   Active: active (running)depuis le mois 2017-03-20 22:15:08 JST; 6s ago

7. Modifiez le répertoire de travail par défaut

Modifiez le répertoire de travail de Jupyter Notebook, qui a actuellement un répertoire de base spécifié par défaut, vers un autre emplacement.

7.1. Édition du fichier de configuration

Créez un répertoire pour Jupyter directement sous votre répertoire personnel


$ mkdir ~/jupyter_files

Modifiez le fichier de configuration.

py3:~/.jupyter/jupyter_notebook_config.py


c.NotebookApp.notebook_dir = u'${Chemin absolu vers le répertoire créé précédemment}'

Redémarrez Jupyter Notebook


$ sudo systemctl restart notebook

7.2. Confirmer les modifications

Accédez au bloc-notes Jupyter. Vous pouvez voir que le répertoire "anaconda3" qui était affiché précédemment n'est plus affiché.

Notebook Home画面

Si vous créez un fichier dans le répertoire de travail spécifié précédemment dans le terminal, vous pouvez vérifier les modifications dans le notebook jupyter.

$ cd ~/jupyter_files/
$ touch TEST_FILE.py

notebook home画面

8. Site Web de référence

Recommended Posts

Introduction de Jupyter Notebook dans CentOS7
Comment utiliser Jupyter Notebook
Bloc-notes Jupyter facile à utiliser (Python3.5)
Mémo Jupyter Notebook
Présentation de Jupyter Notebook
Je veux écrire un blog avec Jupyter Notebook
Faire de Jupyter Notebook un service sur CentOS
Puissant ordinateur portable Jupyter
Comment exécuter des commandes avec Jupyter Notebook
Comment utiliser le notebook Jupyter avec ABCI
Construire un notebook jupyter sur un serveur distant (CentOS)
Mot de passe du notebook Jupyter
Jupyter Notebook Principes d'utilisation
Mémo Jupyter Notebook
Comment utiliser le bloc-notes Jupyter [super basique]
Comment déboguer avec Jupyter ou iPython Notebook
[Jupyter Notebook / Lab] Trois méthodes de débogage sur Jupyter [Pdb]
Paramètres de Jupyter Notebook - Comment utiliser (EC2 Amazon Linux 2)
Démarrer Jupyter Notebook
Convertir jupyter en py
3 astuces du notebook Jupyter (Python)
Introduction de Python 2.7 à CentOS 6.6
[Cloud103] # 3 Jupyter Notebook à nouveau
Convertir le fichier .ipynb du notebook jupyter en fichier .py exécutable python
Personnalisez les raccourcis du bloc-notes Jupyter pour qu'ils ressemblent à du texte sublime
Application Mac pour ouvrir Jupyter Notebook (* .ipynb) en double-cliquant
Comment lancer instantanément Jupyter Notebook à partir du terminal
À côté d'Excel, le notebook Jupyter pour le moment
Comment afficher la barre de progression sur Jupyter Notebook pour voir la progression
Touche de raccourci pour le bloc-notes Jupyter
[IPython] Comment partager un bloc-notes IPython
Utilisation de Graphviz avec Jupyter Notebook
Afficher le HTML dans le notebook Jupyter
Comment importer NoteBook en tant que module dans Jupyter (IPython)
Utiliser pip avec Jupyter Notebook
Comment changer la disposition de Jupyter
Erreur de multitraitement dans Jupyter Notebook
Essayez d'utiliser Jupyter Notebook de manière dynamique
[Super Basics] À propos de Jupyter Notebook
Graphiques élevés dans le notebook Jupyter
Afficher le PDF sur Jupyter Notebook
Comment utiliser IPython Notebook
Utiliser Cython avec Jupyter Notebook
homebrew, pyenv, anaconda, Jupyter Notebook
Jouer avec Jupyter Notebook (IPython Notebook)
Je souhaite utiliser un environnement virtuel avec jupyter notebook!
Passer de python2.7 à python3.6 (centos7)
Comment voir le contenu du fichier ipynb du notebook Jupyter
La façon habituelle d'ajouter un noyau avec Jupyter Notebook
Connectez le noyau Jupyter Notebook à Spyder avec Jupytext activé
[Édition complète] Raccourci vers le bloc-notes Jupyter
Impossible d'afficher le tensorboard dans le notebook Jupyter sur Docker (résolu)
Comment importer NoteBook en tant que module dans Jupyter (IPython)
Un moyen très pratique de présenter avec Jupyter Notebook
jupyter je l'ai touché
Exécutez Jupyter Notebook sous Windows
notebook jupyter dans l'environnement venv python3.8
Un moyen simple de lancer Jupyter Notebook / Lab et de définir un mot de passe
Comment démarrer par lots un programme Python créé avec le notebook Jupyter