Comment configurer Jupyter Notebook avec Python 3 sur Ubuntu 18.04

introduction

Une application Web open source,Jupyter Notebook vous permet de créer et de partager du code interactif, des visualisations, etc. Cet outil peut être utilisé avec plusieurs langages de programmation, notamment Python, Julia, R, Haskell et Ruby. Il est souvent utilisé pour travailler avec des données, la modélisation statistique et l'apprentissage automatique.

Ce tutoriel vous guidera dans la configuration de Jupyter Notebook pour qu'il s'exécute à partir d'un serveur Ubuntu 18.04, et vous apprendra également à vous connecter et à utiliser le portable. Jupyter Notebooks (ou simplement Notebooks) sont des documents produits par l'application Jupyter Notebook qui contiennent à la fois du code informatique et des éléments de texte enrichi (paragraphes, équations, figures, liens, etc.) facilitant la présentation et le partage de recherches reproductibles.

À la fin de ce guide, vous pourrez exécuter le code Python 3 à l'aide de Jupyter Notebook s'exécutant sur un serveur distant.

Conditions préalables

Pour compléter ce guide, vous devez disposer d’une nouvelle instance de serveur Ubuntu 18.04 avec un pare-feu de base et d’un utilisateur non root doté des privilèges sudo. Vous pouvez apprendre comment configurer cela en parcourant nosinitial server setup tutorial.

[[step-1 -—- set-up-python]] == Étape 1 - Configurer Python

Pour commencer, nous allons installer les dépendances nécessaires à notre environnement de programmation Python à partir des référentiels Ubuntu. Ubuntu 18.04 est préinstallé avec Python 3.6. Nous utiliserons le pip du gestionnaire de paquets Python pour installer des composants supplémentaires un peu plus tard.

Nous devons d'abord mettre à jour l'index local des packagesapt, puis télécharger et installer les packages:

sudo apt update

Ensuite, installez pip et les fichiers d’en-tête Python, qui sont utilisés par certaines dépendances de Jupyter:

sudo apt install python3-pip python3-dev

Nous pouvons maintenant passer à la configuration d’un environnement virtuel Python dans lequel nous installerons Jupyter.

[[step-2 -—- create-a-python-virtual-environment-for-jupyter]] == Étape 2 - Créer un environnement virtuel Python pour Jupyter

Maintenant que Python 3, ses fichiers d’en-tête et le pip sont prêts, nous pouvons créer un environnement virtuel Python pour gérer nos projets. Nous allons installer Jupyter dans cet environnement virtuel.

Pour ce faire, nous devons d'abord accéder à la commandevirtualenv que nous pouvons installer avec pip.

Mettez à niveau pip et installez le paquet en tapant:

sudo -H pip3 install --upgrade pip
sudo -H pip3 install virtualenv

L'indicateur-H garantit que la politique de sécurité définit la variable d'environnementhome sur le répertoire de base de l'utilisateur cible.

Avecvirtualenv installé, nous pouvons commencer à former notre environnement. Créez et déplacez-vous dans un répertoire où nous pouvons conserver nos fichiers de projet. Nous appellerons celamy_project_dir, mais vous devez utiliser un nom significatif pour vous et ce sur quoi vous travaillez.

mkdir ~/my_project_dir
cd ~/my_project_dir

Dans le répertoire du projet, nous allons créer un environnement virtuel Python. Pour les besoins de ce didacticiel, nous l'appelleronsmy_project_env, mais vous devriez l'appeler quelque chose qui est pertinent pour votre projet.

virtualenv my_project_env

Cela créera un répertoire appelémy_project_env dans votre répertoiremy_project_dir. À l'intérieur, il installera une version locale de Python et une version locale de pip. Nous pouvons utiliser ceci pour installer et configurer un environnement Python isolé pour Jupyter.

Avant d'installer Jupyter, nous devons activer l'environnement virtuel. Vous pouvez le faire en tapant:

source my_project_env/bin/activate

Votre invite devrait changer pour indiquer que vous travaillez maintenant dans un environnement virtuel Python. Cela ressemblera à quelque chose comme ceci:(my_project_env)user@host:~/my_project_dir$.

Vous êtes maintenant prêt à installer Jupyter dans cet environnement virtuel.

[[step-3 -—- install-jupyter]] == Étape 3 - Installer Jupyter

Avec votre environnement virtuel actif, installez Jupyter avec l’instance locale de pip.

[.note] #Note: Lorsque l'environnement virtuel est activé (lorsque votre invite est précédée de(my_project_env)), utilisezpip au lieu depip3, même si vous utilisez Python 3. La copie de l’environnement virtuel de l’outil est toujours nomméepip, quelle que soit la version de Python.
#

pip install jupyter

À ce stade, vous avez correctement installé tous les logiciels nécessaires à l’exécution de Jupyter. Nous pouvons maintenant démarrer le serveur Notebook.

[[step-4 -—- run-jupyter-notebook]] == Étape 4 - Exécuter Jupyter Notebook

Vous avez maintenant tout ce dont vous avez besoin pour exécuter Jupyter Notebook! Pour l'exécuter, exécutez la commande suivante:

jupyter notebook

Un journal des activités du Jupyter Notebook sera imprimé sur le terminal. Lorsque vous exécutez Jupyter Notebook, il s'exécute sur un numéro de port spécifique. Le premier notebook que vous exécutez utilisera généralement le port8888. Pour vérifier le numéro de port spécifique sur lequel Jupyter Notebook est en cours d'exécution, reportez-vous au résultat de la commande utilisée pour le démarrer:

Output[I 21:23:21.198 NotebookApp] Writing notebook server cookie secret to /run/user/1001/jupyter/notebook_cookie_secret
[I 21:23:21.361 NotebookApp] Serving notebooks from local directory: /home/sammy/my_project_dir
[I 21:23:21.361 NotebookApp] The Jupyter Notebook is running at:
[I 21:23:21.361 NotebookApp] http://localhost:8888/?token=1fefa6ab49a498a3f37c959404f7baf16b9a2eda3eaa6d72
[I 21:23:21.361 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[W 21:23:21.361 NotebookApp] No web browser found: could not locate runnable browser.
[C 21:23:21.361 NotebookApp]

    Copy/paste this URL into your browser when you connect for the first time,
    to login with a token:
        http://localhost:8888/?token=1fefa6ab49a498a3f37c959404f7baf16b9a2eda3eaa6d72

Si vous exécutez Jupyter Notebook sur un ordinateur local (et non sur un serveur), vous pouvez accéder à l'URL affichée pour vous connecter à Jupyter Notebook. Si vous exécutez Jupyter Notebook sur un serveur, vous devrez vous connecter au serveur à l'aide du tunneling SSH, comme indiqué dans la section suivante.

À ce stade, vous pouvez garder la connexion SSH ouverte et le fonctionnement de Jupyter Notebook ou vous pouvez quitter l'application et la réexécuter une fois que vous avez configuré le tunneling SSH. Choisissons d’arrêter le processus Jupyter Notebook. Nous l'exécuterons à nouveau une fois le tunnel SSH configuré. Pour arrêter le processus Jupyter Notebook, appuyez surCTRL+C, tapezY, puisENTER pour confirmer. La sortie suivante sera affichée:

Output[C 21:28:28.512 NotebookApp] Shutdown confirmed
[I 21:28:28.512 NotebookApp] Shutting down 0 kernels

Nous allons maintenant configurer un tunnel SSH pour pouvoir accéder au bloc-notes.

[[step-5 -—- connect-to-the-server-using-ssh-tunneling]] == Étape 5 - Se connecter au serveur à l'aide du tunnel SSH

Dans cette section, nous allons apprendre à se connecter à l'interface Web de Jupyter Notebook à l'aide du tunneling SSH. Étant donné que Jupyter Notebook fonctionnera sur un port spécifique du serveur (tel que:8888,:8889, etc.), le tunnel SSH vous permet de vous connecter en toute sécurité au port du serveur.

Les deux sous-sections suivantes décrivent comment créer un tunnel SSH à partir de 1) un Mac ou Linux et 2) Windows. Veuillez vous reporter à la sous-section de votre ordinateur local.

Tunneling SSH avec un Mac ou Linux

Si vous utilisez un Mac ou Linux, les étapes de création d'un tunnel SSH sont similaires à l'utilisation de SSH pour vous connecter à votre serveur distant, sauf qu'il existe des paramètres supplémentaires dans la commandessh. Cette sous-section décrit les paramètres supplémentaires nécessaires dans la commandessh pour réussir le tunnel.

Le tunneling SSH peut être effectué en exécutant la commande SSH suivante dans une nouvelle fenêtre de terminal locale:

ssh -L 8888:localhost:8888 your_server_username@your_server_ip

La commandessh ouvre une connexion SSH, mais-L spécifie que le port donné sur l'hôte local (client) doit être transféré vers l'hôte et le port donnés du côté distant (serveur). Cela signifie que tout ce qui est exécuté sur le deuxième numéro de port (par exemple, 8888) sur le serveur apparaîtra sur le premier numéro de port (par ex. 8888) sur votre ordinateur local.

Changez éventuellement le port8888 en un de votre choix pour éviter d'utiliser un port déjà utilisé par un autre processus.

server_username est votre nom d'utilisateur (par exemple sammy) sur le serveur que vous avez créé etyour_server_ip est l'adresse IP de votre serveur.

Par exemple, pour le nom d'utilisateursammy et l'adresse serveur203.0.113.0, la commande serait:

ssh -L 8888:localhost:8888 [email protected]

Si aucune erreur n'apparaît après l'exécution de la commandessh -L, vous pouvez vous déplacer dans votre environnement de programmation et exécuter Jupyter Notebook:

jupyter notebook

Vous recevrez une sortie avec une URL. À partir d'un navigateur Web sur votre ordinateur local, ouvrez l'interface Web de Jupyter Notebook avec l'URL commençant parhttp://localhost:8888. Assurez-vous que le numéro de jeton est inclus ou entrez la chaîne de numéro de jeton lorsque vous y êtes invité àhttp://localhost:8888.

Tunneling SSH avec Windows et Putty

Si vous utilisez Windows, vous pouvez créer un tunnel SSH en utilisantPutty.

Tout d'abord, entrez l'URL du serveur ou l'adresse IP en tant que nom d'hôte, comme indiqué:

Set Hostname for SSH Tunnel

Ensuite, cliquez surSSH en bas du volet gauche pour développer le menu, puis cliquez surTunnels. Entrez le numéro de port local que vous souhaitez utiliser pour accéder à Jupyter sur votre ordinateur local. Choisissez8000 ou supérieur pour éviter les ports utilisés par d'autres services et définissez la destination surlocalhost:8888:8888 est le numéro du port sur lequel Jupyter Notebook s'exécute.

Cliquez maintenant sur le boutonAdd, et les ports devraient apparaître dans la listeForwarded ports:

Forwarded ports list

Enfin, cliquez sur le boutonOpen pour vous connecter au serveur via SSH et tunneliser les ports souhaités. Accédez àhttp://localhost:8000 (ou au port que vous avez choisi) dans un navigateur Web pour vous connecter à Jupyter Notebook s'exécutant sur le serveur. Assurez-vous que le numéro de jeton est inclus ou entrez la chaîne de numéro de jeton lorsque vous y êtes invité àhttp://localhost:8000.

[[step-6 -—- using-jupyter-notebook]] == Étape 6 - Utilisation de Jupyter Notebook

Cette section présente les bases de l’utilisation de Jupyter Notebook. Si Jupyter Notebook n'est pas actuellement en cours d'exécution, démarrez-le avec la commandejupyter notebook.

Vous devriez maintenant y être connecté à l'aide d'un navigateur Web. Jupyter Notebook est un outil très puissant doté de nombreuses fonctionnalités. Cette section décrira quelques-unes des fonctionnalités de base pour vous permettre de commencer à utiliser le Bloc-notes. Jupyter Notebook affiche tous les fichiers et dossiers du répertoire dans lequel il est exécuté. Par conséquent, lorsque vous travaillez sur un projet, assurez-vous de le démarrer à partir du répertoire du projet.

Pour créer un nouveau fichier Notebook, sélectionnezNew>Python 3 dans le menu déroulant en haut à droite:

Create a new Python 3 notebook

Cela ouvrira un cahier. Nous pouvons maintenant exécuter le code Python dans la cellule ou changer la cellule en markdown. Par exemple, modifiez la première cellule pour accepter Markdown en cliquant surCell>Cell Type>Markdown dans la barre de navigation supérieure. Nous pouvons maintenant écrire des notes en utilisant Markdown et même inclure des équations écrites enLaTeX en les plaçant entre les symboles$$. Par exemple, tapez ce qui suit dans la cellule après l'avoir modifiée en markdown:

# First Equation

Let us now implement the following equation:
$$ y = x^2$$

where $x = 2$

Pour transformer la démarque en texte enrichi, appuyez surCTRL+ENTER, et les résultats suivants devraient être obtenus:

results of markdown

Vous pouvez utiliser les cellules de démarques pour prendre des notes et documenter votre code. Implémentons cette équation et imprimons le résultat. Cliquez sur la cellule du haut, puis appuyez surALT+ENTER pour ajouter une cellule en dessous. Entrez le code suivant dans la nouvelle cellule.

x = 2
y = x**2
print(y)

Pour exécuter le code, appuyez surCTRL+ENTER. Vous recevrez les résultats suivants:

first equation results

Vous avez maintenant la possibilité deimport modules et d'utiliser le Notebook comme vous le feriez avec n'importe quel autre environnement de développement Python!

Conclusion

Toutes nos félicitations! Vous devriez maintenant pouvoir écrire du code Python reproductible et des notes dans Markdown à l'aide de Jupyter Notebook. Pour obtenir une présentation rapide de Jupyter Notebook à partir de l'interface, sélectionnezHelp>User Interface Tour dans le menu de navigation supérieur pour en savoir plus.

À partir de là, vous pouvez démarrer un projet d'analyse et de visualisation de données en lisantData Analysis and Visualization with pandas and Jupyter Notebook in Python 3.

Si vous souhaitez en savoir plus, vous pouvez lire notre série surTime Series Visualization and Forecasting.