Comment configurer un bloc-notes Jupyter pour exécuter IPython sur Ubuntu 16.04

introduction

IPython est une interface de ligne de commande interactive pour Python. Jupyter Notebook offre une interface Web interactive pour de nombreuses langues, y compris IPython.

Cet article vous expliquera comment configurer un serveur pour exécuter Jupyter Notebook et vous expliquera comment vous connecter et utiliser le portable. Les blocs-notes Jupyter (ou simplement les blocs-notes) sont des documents produits par l’application Jupyter Notebook qui contiennent à la fois du code informatique (p. Ex. Python) et des éléments de texte enrichis (paragraphes, équations, figures, liens, etc.) facilitant la présentation de recherches reproductibles.

À la fin de ce guide, vous pourrez exécuter le code Python 2.7 à l’aide d’Ipython et de Jupyter Notebook s’exécutant sur un serveur distant. Pour les besoins de ce didacticiel, Python 2 (2.7.x) est utilisé car de nombreuses bibliothèques de science des données, de calcul scientifique et de calcul hautes performances prennent en charge la version 2.7 et non la version 3.0+.

Conditions préalables

Pour suivre ce tutoriel, vous aurez besoin des éléments suivants:

Toutes les commandes de ce didacticiel doivent être exécutées en tant qu’utilisateur non root. Si un accès root est requis pour la commande, il sera précédé de + sudo +. https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-16-04 La configuration initiale du serveur avec Ubuntu 16.04] explique comment ajouter des utilisateurs et leur donner un accès immédiat.

Étape 1 - Installation de Python 2.7 et de Pip

Dans cette section, nous installerons Python 2.7 et Pip.

Commencez par mettre à jour l’index de package du système. Cela garantira que les paquets anciens ou obsolètes n’interfèrent pas avec l’installation.

sudo apt-get update

Ensuite, installez Python 2.7, Python Pip et Python Development:

sudo apt-get -y install python2.7 python-pip python-dev

L’installation de + python2.7 + mettra à jour la dernière version de Python 2.7, et + python-pip + installera Pip, ce qui nous permettra de gérer les paquets Python que nous aimerions utiliser. Certaines dépendances de Jupyter peuvent nécessiter une compilation. Dans ce cas, vous aurez besoin de la capacité de compiler les extensions C de Python. Nous installons donc également + python-dev +.

Pour vérifier que vous avez installé Python:

python --version

Cela produira:

OutputPython 2.7.11+

Selon la dernière version de Python 2.7, le résultat peut être différent.

Vous pouvez également vérifier si pip est installé à l’aide de la commande suivante:

pip --version

Vous devriez quelque chose de semblable à ce qui suit:

Outputpip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)

De même, en fonction de votre version de pip, la sortie peut être légèrement différente.

Étape 2 - Installation d’Ipython et de Jupyter Notebook

Dans cette section, nous installerons Ipython et Jupyter Notebook.

Tout d’abord, installez Ipython:

sudo apt-get -y install ipython ipython-notebook

Maintenant, nous pouvons passer à l’installation de Jupyter Notebook:

sudo -H pip install jupyter

En fonction de la version de pip figurant dans le référentiel Ubuntu apt-get, le message d’erreur suivant peut s’afficher lors de la tentative d’installation de Jupyter:

OutputYou are using pip version 8.1.1, however version 8.1.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

Si tel est le cas, vous pouvez utiliser pip pour mettre à niveau pip vers la dernière version:

sudo -H pip install --upgrade pip

Mettez à niveau pip, puis essayez à nouveau d’installer Jupyter:

sudo -H pip install jupyter

Étape 3 - Exécution de 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

Si vous exécutez Jupyter sur un système sur lequel JavaScript est installé, il fonctionnera toujours, mais il se peut que vous obteniez une erreur indiquant que le Jupyter Notebook nécessite JavaScript:

OutputJupyter Notebook requires JavaScript.
Please enable it to proceed.
...

Pour ignorer l’erreur, vous pouvez appuyer sur + Q + puis sur + Y + pour confirmer.

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 utilisez sera généralement exécuté sur le port ++. 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 NotebookApp] Serving notebooks from local directory: /home/sammy
[I NotebookApp] 0 active kernels
[I NotebookApp] The Jupyter Notebook is running at: http://localhost/
[I NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).

Si vous exécutez Jupyter Notebook sur un ordinateur Linux local (pas sur un droplet), vous pouvez simplement naviguer vers + localhost + pour vous connecter à Jupyter Notebook. Si vous exécutez Jupyter Notebook sur un droplet, vous devez vous connecter au serveur à l’aide du tunneling SSH, comme indiqué dans la section suivante.

À ce stade, vous pouvez laisser la connexion SSH ouverte et le fonctionnement de Jupyter Notebook ou quitter l’application et la réexécuter une fois que vous avez configuré le tunneling SSH. Soyons simples et arrêtons le processus Jupyter Notebook. Nous l’exécuterons à nouveau une fois que le tunnelage SSH fonctionnera. Pour arrêter le processus de Jupyter Notebook, appuyez sur + CTRL + C +, tapez + Y +, puis appuyez sur + ENTRÉE + pour confirmer. Les éléments suivants seront affichés:

Output[C 12:32:23.792 NotebookApp] Shutdown confirmed
[I 12:32:23.794 NotebookApp] Shutting down kernels

Étape 4 - Connexion au serveur à l’aide du tunneling SSH

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

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, la procédure de création d’un tunnel SSH est similaire à la procédure https://www.digitalocean.com/community/tutorials/how-to-use-ssh-keys-with-digitalocean [ Comment utiliser les clés SSH avec les droplets DigitalOcean sous Linux ou Mac] sauf que des paramètres supplémentaires sont ajoutés dans la commande + ssh +. Cette sous-section décrira les paramètres supplémentaires nécessaires dans la commande + ssh + pour un tunnel réussi.

Le tunneling SSH peut être effectué en exécutant la commande SSH suivante:

ssh -L :localhost: @

La commande + ssh + ouvre une connexion SSH, mais + -L + spécifie que le port donné sur l’hôte local (client) doit être transféré à l’hôte donné et le port côté distant (Droplet). Cela signifie que tout ce qui est en cours d’exécution sur le deuxième numéro de port (c.-à-d. `) sur le droplet apparaîtra sur le premier numéro de port (c.-à-d. `) sur votre ordinateur local. Vous devez remplacer ` par le port sur lequel Jupyter Notebook est exécuté. Vous pouvez éventuellement changer le port ` sur l’un de vos choix (par exemple, si + 8000 + est utilisé par un autre processus). Utilisez un port supérieur ou égal à + ​​8000 + (c’est-à-dire `, `, etc.) pour éviter d’utiliser un port déjà utilisé par un autre processus. `` est votre nom d'utilisateur (c'est-à-dire sammy) sur le droplet que vous avez créé et «» est l’adresse IP de votre droplet. Par exemple, pour le nom d’utilisateur «» et l'adresse de serveur «», la commande serait:

ssh -L :localhost: @

Si aucune erreur ne s’affiche après l’exécution de la commande + ssh -L +, vous pouvez exécuter Jupyter Notebook:

jupyter notebook

Maintenant, depuis un navigateur Web sur votre ordinateur local, ouvrez l’interface Web de Jupyter Notebook avec + http: // localhost: + (ou le numéro de port que vous avez choisi).

Tunneling SSH avec Windows et Putty

Si vous utilisez Windows, vous pouvez également créer facilement un tunnel SSH à l’aide de Putty, comme indiqué dans https://www.digitalocean.com/community/tutorials/how-to-use-ssh-keys-with-putty-on-digitalocean. -droplets-windows-users [Comment utiliser les clés SSH avec PuTTY sur les gouttelettes DigitalOcean (utilisateurs de Windows)].

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

image: https: //assets.digitalocean.com/articles/jupyter_notebook/set_hostname_putty.png [Définir le nom d’hôte pour le tunnel SSH]

Ensuite, cliquez sur * SSH * au bas du volet de gauche pour développer le menu, puis cliquez sur * Tunnels *. Entrez le numéro de port local à utiliser pour accéder à Jupyter sur votre ordinateur local. Choisissez ` ou supérieur (ie , , etc.) pour éviter les ports utilisés par d'autres services, et définissez la destination comme `+ localhost: +` où ` est le nombre de le port sur lequel Jupyter Notebook est exécuté. Maintenant, cliquez sur le bouton * Ajouter *, et les ports devraient apparaître dans la liste * Ports transférés *:

image: https: //assets.digitalocean.com/articles/jupyter_notebook/forwarded_ports_putty.png [Liste des ports transférés]

Enfin, cliquez sur le bouton * Ouvrir * pour vous connecter au serveur via SSH et tunnelliser les ports souhaités. Naviguez jusqu’à + http: // localhost: + (ou le port que vous avez choisi) dans un navigateur Web pour vous connecter à Jupyter Notebook exécuté sur le serveur.

Étape 5 - Utiliser Jupyter Notebook

Cette section présente les bases de l’utilisation de Jupyter Notebook. À ce stade, Jupyter Notebook devrait s’exécuter et vous devriez y être connecté à l’aide d’un navigateur Web. Jupyter Notebook est très puissant et possède de nombreuses fonctionnalités. Cette section présente quelques-unes des fonctionnalités de base pour vous permettre de commencer à utiliser le bloc-notes. Jupyter Notebook affichera automatiquement tous les fichiers et dossiers du répertoire dans lequel il est exécuté.

Pour créer un nouveau fichier de cahier, sélectionnez * Nouveau *> * Python 2 * dans le menu en haut à droite:

image: https: //assets.digitalocean.com/articles/jupyter_notebook/create_python2_notebook.png [Créer un nouveau bloc-notes Python 2]

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 sur * Cell *> * Type de cellule *> * Markdown * dans la barre de navigation supérieure. Nous pouvons maintenant écrire des notes en utilisant Markdown et même inclure des équations écrites en LaTeX en les plaçant entre les symboles + $$ +. Par exemple, tapez ce qui suit dans la cellule après l’avoir modifiée en markdown:

# Simple Equation

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

where $x = 2$

Pour transformer le démarquage en texte enrichi, appuyez sur les touches + CTRL + ENTER +. Voici les résultats:

image: https: //assets.digitalocean.com/articles/jupyter_notebook/markdown_results.png [résultats du démarquage]

Vous pouvez utiliser les cellules de démarques pour prendre des notes et documenter votre code. Implémentons cette équation simple et imprimons le résultat. Sélectionnez * Insérer *> * Insérer cellule ci-dessous * pour insérer une cellule et entrez le code suivant:

x = 2
y = x*x
print y

Pour exécuter le code, appuyez sur + CTRL + ENTER. Ce qui suit devrait être les résultats:

image: https: //assets.digitalocean.com/articles/jupyter_notebook/equations_results.png [résultats d’une équation simple]

Vous avez maintenant la possibilité d’inclure des bibliothèques et d’utiliser le bloc-notes comme vous le feriez avec tout autre environnement de développement Python!

Conclusion

Toutes nos félicitations! Vous devriez maintenant pouvoir écrire du code Python reproductible et des notes à l’aide de Markdown à l’aide du cahier Jupyter exécuté sur un droplet. Pour vous familiariser rapidement avec le carnet Jupyter, sélectionnez * Aide *> * Visite de l’interface utilisateur * dans le menu de navigation supérieur.