Comment installer, exécuter et se connecter à Jupyter Notebook sur un serveur distant

L’auteur a sélectionné la la Fondation Apache Software pour recevoir un don de 100 $ dans le cadre du Write for DOnations programme.

introduction

Jupyter Notebook est une application Web interactive à code source ouvert qui vous permet d’écrire et d’exécuter du code informatique dans plus de 40 langages de programmation, y compris https: //. www.python.org/[Python], R, Julia et https://www.scala-lang.org / [Scala]. Un produit de Project Jupyter, Jupyter Notebook est utile pour le codage itératif car il vous permet d’écrire un petit extrait de code, de l’exécuter et de renvoyer le résultat.

Jupyter Notebook offre la possibilité de créer des documents, simplement appelés «cahiers». Les cahiers créés à partir du cahier Jupyter sont des documents de recherche reproductibles et partageables qui comprennent des éléments en texte enrichi, des équations, du code et leurs sorties (figures, tableaux, graphiques interactifs). Les blocs-notes peuvent également être exportés dans des fichiers de code brut, des documents HTML ou PDF, ou utilisés pour créer des diaporamas interactifs ou des pages Web.

Cet article vous expliquera comment installer et configurer l’application Jupyter Notebook sur un serveur Web Ubuntu 18.04 et comment s’y connecter à partir de votre ordinateur local. De plus, nous verrons également comment utiliser Jupyter Notebook pour exécuter un exemple de code Python.

Conditions préalables

Pour compléter ce tutoriel, vous aurez besoin de:

De plus, si votre ordinateur local exécute Windows, vous devrez y installer PuTTY pour pouvoir établir un tunnel SSH sur votre serveur. Suivez notre guide sur Comment créer des clés SSH avec PuTTY sur Windows pour télécharger et installer PuTTY.

Étape 1 - Installation de Jupyter Notebook

Les ordinateurs portables étant utilisés pour écrire, exécuter et voir le résultat de petits extraits de code, vous devez d’abord configurer le support du langage de programmation. Jupyter Notebook utilise un noyau spécifique à la langue, un programme informatique qui s’exécute et un code introspectif. Jupyter Notebook a de nombreux noyaux dans différentes langues, la valeur par défaut étant IPython. Dans ce tutoriel, vous allez configurer Jupyter Notebook pour qu’il exécute du code Python via le noyau IPython.

En supposant que vous ayez suivi les tutoriels liés dans la section Prérequis, vous devriez avoir https://www.digitalocean.com/community/tutorials/how-to-install-python-3-and-set-up-a-local-programming -environment-on-ubuntu-18-04 [Python 3, pip et un environnement virtuel installé]. Les exemples de ce guide suivent la convention utilisée dans le didacticiel préalable à l’installation de Python 3, qui nomme l’environnement virtuel «` + my_env + `», mais vous pouvez le renommer.

Commencez par activer l’environnement virtuel:

source /bin/activate

Suite à cela, votre invite sera préfixée avec le nom de votre environnement.

Maintenant que vous êtes dans votre environnement virtuel, installez Jupyter Notebook:

python3 -m pip install jupyter

Si l’installation a réussi, vous verrez une sortie semblable à celle-ci:

Output. . .
Successfully installed MarkupSafe-1.0 Send2Trash-1.5.0 backcall-0.1.0 bleach-2.1.3 decorator-4.3.0 entrypoints-0.2.3 html5lib-1.0.1 ipykernel-4.8.2 ipython-6.4.0 ipython-genutils-0.2.0 ipywidgets-7.2.1 jedi-0.12.0 jinja2-2.10 jsonschema-2.6.0 jupyter-1.0.0 jupyter-client-5.2.3 jupyter-console-5.2.0 jupyter-core-4.4.0 mistune-0.8.3 nbconvert-5.3.1 nbformat-4.4.0 notebook-5.5.0 pandocfilters-1.4.2 parso-0.2.0 pexpect-4.5.0 pickleshare-0.7.4 prompt-toolkit-1.0.15 ptyprocess-0.5.2 pygments-2.2.0 python-dateutil-2.7.3 pyzmq-17.0.0 qtconsole-4.3.1 simplegeneric-0.8.1 six-1.11.0 terminado-0.8.1 testpath-0.3.1 tornado-5.0.2

Jupyter Notebook a été installé sur votre serveur. Ensuite, nous verrons comment exécuter l’application.

Étape 2 - Exécution du cahier Jupyter

Jupyter Notebook doit être exécuté à partir de votre VPS afin que vous puissiez vous y connecter à partir de votre ordinateur local à l’aide d’un tunnel SSH et de votre navigateur Web favori.

Pour exécuter le serveur Jupyter Notebook, entrez la commande suivante:

jupyter notebook

Après avoir exécuté cette commande, vous verrez une sortie similaire à celle-ci:

Output[I 19:46:22.031 NotebookApp] Writing notebook server cookie secret to /home//.local/share/jupyter/runtime/notebook_cookie_secret
[I 19:46:22.365 NotebookApp] Serving notebooks from local directory: /home//environments
[I 19:46:22.365 NotebookApp] 0 active kernels
[I 19:46:22.366 NotebookApp] The Jupyter Notebook is running at:
[I 19:46:22.366 NotebookApp] http://localhost:8888/?token=
[I 19:46:22.366 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[W 19:46:22.366 NotebookApp] No web browser found: could not locate runnable browser.
[C 19:46:22.367 NotebookApp]

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

Vous remarquerez peut-être dans la sortie qu’il y a un avertissement + Aucun navigateur Web trouvé +. C’est à prévoir, car l’application est exécutée sur un serveur et vous n’avez probablement pas installé de navigateur Web dessus. Ce guide vous expliquera comment vous connecter au portable sur le serveur à l’aide du tunneling SSH dans la section suivante.

Pour l’instant, quittez le bloc-notes Jupyter en appuyant sur + CTRL + C + suivi de + y +, puis en appuyant sur + ENTER + pour confirmer:

OutputShutdown this notebook server (y/[n])?
[C 20:05:47.654 NotebookApp] Shutdown confirmed
[I 20:05:47.654 NotebookApp] Shutting down 0 kernels

Puis déconnectez-vous du serveur en utilisant la commande + exit +:

exit

Vous venez d’exécuter Jupyter Notebook sur votre serveur. Toutefois, pour accéder à l’application et commencer à travailler avec les ordinateurs portables, vous devez vous connecter à l’application à l’aide du tunneling SSH et d’un navigateur Web sur votre ordinateur local.

Étape 3 - Connexion à l’application Jupyter Notebook avec tunneling SSH

Le tunneling SSH constitue un moyen simple et rapide de se connecter à l’application Jupyter Notebook s’exécutant sur votre serveur. Secure Shell (plus communément appelé SSH) est un protocole réseau qui vous permet de: connectez-vous à un serveur distant en toute sécurité sur un réseau non sécurisé.

Le protocole SSH comprend un mécanisme de transfert de port qui vous permet de canaliser certaines applications exécutées sur un numéro de port spécifique sur un serveur vers un numéro de port spécifique sur votre ordinateur local. Nous allons apprendre à «transférer» en toute sécurité l’application Jupyter Notebook s’exécutant sur votre serveur (sur le port + 8888 +, par défaut) vers un port de votre ordinateur local.

La méthode que vous utilisez pour établir un tunnel SSH dépend du système d’exploitation de votre ordinateur local. Passez à la sous-section ci-dessous la plus pertinente pour votre machine.

Tunneling SSH avec macOS ou Linux

Si votre ordinateur local exécute Linux ou macOS, il est possible d’établir un tunnel SSH en exécutant une seule commande.

+ ssh + est la commande standard pour ouvrir une connexion SSH, mais lorsqu’il est utilisé avec la directive + -L +, vous pouvez spécifier qu’un port donné sur l’hôte local (c’est-à-dire votre ordinateur local) sera transféré à une l’hôte et le port donnés sur l’hôte distant (dans ce cas, votre serveur). Cela signifie que tout ce qui est exécuté sur le port spécifié sur le serveur distant (+ 8888 +, le port par défaut de Jupyter Notebook) apparaîtra sur le port spécifié sur votre ordinateur local (++ dans la commande exemple).

Pour établir votre propre tunnel SSH, exécutez la commande suivante. N’hésitez pas à remplacer le port ++ par l’un de vos choix si, par exemple, + 8000 + est utilisé par un autre processus. Il est recommandé d’utiliser un port supérieur ou égal à + ​​8000 +, car il est peu probable que ces numéros de port soient utilisés par un autre processus. Assurez-vous d’inclure l’adresse IP de votre propre serveur et le nom de l’utilisateur non root de votre serveur:

ssh -L :localhost:8888 @

S’il n’y a pas d’erreur dans cette commande, elle vous connectera à votre serveur distant. A partir de là, activez l’environnement virtuel:

source ~/environments//bin/activate

Ensuite, lancez l’application Jupyter Notebook:

jupyter notebook

Pour vous connecter à Jupyter Notebook, utilisez votre navigateur Web favori pour accéder au port local de l’hôte local: + http: // localhost: +. Maintenant que vous êtes connecté à Jupyter Notebook, passez à l’étape 4 pour apprendre à vous en servir.

Tunneling SSH sous Windows et PuTTY

PuTTY est un client SSH open source pour Windows qui peut être utilisé pour https://www.digitalocean.com/community/tutorials/how-to-use-ssh-keys-with-putty-on-digitalocean-droplets-windows -utilisateurs [se connecter à votre serveur]. Après avoir téléchargé et installé PuTTY sur votre ordinateur Windows (comme décrit dans le tutoriel préalable), ouvrez le programme et entrez l’URL ou l’adresse IP de votre serveur, comme indiqué ci-après:

image: https: //assets.digitalocean.com/articles/jupyter_notebook/JN_putty_1.png [Entrez l’URL ou l’adresse IP du serveur dans Putty]

Ensuite, cliquez sur * + SSH * en bas du volet gauche, puis sur * Tunnels *. Dans cette fenêtre, entrez le port que vous souhaitez utiliser pour accéder à Jupyter sur votre ordinateur local (++). Il est recommandé d’utiliser un port supérieur ou égal à + ​​8000 + car il est peu probable que ces numéros de port soient utilisés par un autre processus. Si + 8000 + est utilisé par un autre processus, sélectionnez un autre numéro de port non utilisé. Ensuite, définissez la destination sur + localhost: 8888 +, car le port + 8888 + est celui sur lequel Jupyter Notebook est exécuté. Cliquez ensuite sur le bouton * Ajouter * et les ports devraient apparaître dans le champ * Ports transférés *:

image: https: //assets.digitalocean.com/articles/jupyter_notebook/JN_putty_2.png [Configurer le tunnel SSH dans Putty]

Enfin, cliquez sur le bouton * Ouvrir *. Cela permettra à la fois de connecter votre machine au serveur via SSH et de canaliser les ports souhaités. Si aucune erreur ne s’affiche, continuez et activez votre environnement virtuel:

source ~/environments//bin/activate

Ensuite, lancez Jupyter Notebook:

jupyter notebook

Ensuite, accédez au port local de votre navigateur Web favori, par exemple + http: // localhost: + (ou le numéro de port que vous avez choisi), pour vous connecter à l’instance de Jupyter Notebook s’exécutant sur le serveur. Maintenant que vous êtes connecté à Jupyter Notebook, passez à l’étape 4 pour apprendre à vous en servir.

Étape 4 - Utilisation de Jupyter Notebook

En accédant via un navigateur Web, Jupyter Notebook fournit un tableau de bord du bloc-notes qui agit comme un navigateur de fichiers et vous fournit une interface pour la création, l’édition et l’exploration de blocs-notes. Considérez ces cahiers comme des documents (enregistrés avec une extension de fichier + .ipynb +) que vous remplissez avec un nombre quelconque de cellules individuelles. Chaque cellule contient un éditeur de texte interactif qui peut être utilisé pour exécuter du code ou écrire du texte restitué. De plus, les cahiers vous permettent d’écrire et d’exécuter des équations, d’inclure d’autres médias riches, tels que des images ou des tracés interactifs, et de les exporter et de les partager sous différents formats (+ .ipyb +, '+ .pdf , ` .py + `). Pour illustrer certaines de ces fonctions, nous allons créer un fichier de bloc-notes à partir du tableau de bord du bloc-notes, écrire un tableau de texte simple avec une équation et exécuter du code de base Python 3.

À ce stade, vous devriez vous être connecté au serveur à l’aide d’un tunnel SSH et avoir démarré l’application Jupyter Notebook à partir de votre serveur. Après avoir accédé à + ​​http: // localhost: +, une page de connexion s’affichera:

image: https: //assets.digitalocean.com/articles/jupyter_notebook/JN_login_screen_small.png [Écran de connexion Jupyter Notebook]

Dans le champ * Mot de passe ou jeton * en haut, entrez le jeton indiqué dans le résultat après l’exécution de + jupyter notebook + depuis votre serveur:

Output[I 20:35:17.004 NotebookApp] Writing notebook server cookie secret to /run/user/1000/jupyter/notebook_cookie_secret
[I 20:35:17.314 NotebookApp] Serving notebooks from local directory: /home/sammy
[I 20:35:17.314 NotebookApp] 0 active kernels
[I 20:35:17.315 NotebookApp] The Jupyter Notebook is running at:
[I 20:35:17.315 NotebookApp] http://localhost:8888/?token=
[I 20:35:17.315 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[W 20:35:17.315 NotebookApp] No web browser found: could not locate runnable browser.
[C 20:35:17.316 NotebookApp]
. . .

Vous pouvez également copier cette URL à partir de la sortie de votre terminal et la coller dans la barre d’adresse de votre navigateur.

Jupyter notebook affichera automatiquement tous les fichiers et dossiers stockés dans le répertoire à partir duquel il est exécuté. Créez un nouveau fichier de cahier en cliquant sur * Nouveau * puis * Python 3 * dans le coin supérieur droit du tableau de bord du cahier:

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

Dans ce nouveau bloc-notes, changez la première cellule pour accepter la syntaxe de marquage en cliquant sur * Cellule>> * Type de cellule *> * Markdown * dans la barre de navigation en haut. Outre le démarquage, ce type de cellule vous permet également d’écrire des équations dans LaTeX. 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 in Python:
$$ y = x^2$$

where $x = 2$

Pour transformer le démarquage en texte enrichi, appuyez sur les touches + CTRL + ENTER +. Le résultat devrait être le suivant:

image: https: //assets.digitalocean.com/articles/jupyter_notebook/JN_sample_equation.png [Transformez l’équation de l’échantillon en texte enrichi]

Vous pouvez utiliser les cellules de démarques pour prendre des notes et documenter votre code.

Maintenant, implémentons une équation simple et imprimons le résultat. Cliquez sur * Insérer *> * Insérer cellule ci-dessous * pour insérer une cellule. Dans cette nouvelle cellule, entrez le code suivant:

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

Pour exécuter le code, appuyez sur + CTRL + ENTER +, le résultat sera le suivant:

image: https: //assets.digitalocean.com/articles/jupyter_notebook/JN_sample_equation2.png [Résoudre l’équation de l’échantillon]

Voici quelques exemples relativement simples de ce que vous pouvez faire avec Jupyter Notebook. Cependant, c’est une application très puissante avec de nombreux cas d’utilisation potentiels. À partir de là, vous pouvez ajouter des bibliothèques Python et utiliser le bloc-notes comme vous le feriez avec tout autre environnement de développement Python.

Conclusion

Vous devriez maintenant être en mesure d’écrire du code et du texte Python reproductibles à l’aide du Jupyter Notebook s’exécutant sur un serveur distant. Pour obtenir un aperçu rapide de Jupyter Notebook, cliquez sur * Aide * dans la barre de navigation supérieure et sélectionnez * Visite guidée de l’interface utilisateur * comme indiqué ci-dessous:

image: https: //assets.digitalocean.com/articles/jupyter_notebook/JN_help_tour.png [Recherche de l’aide de Jupyter Notebook]

Si vous êtes intéressé, nous vous encourageons à en apprendre davantage sur Jupyter Notebook en consultant la Project Documentation de Jupyter. De plus, vous pouvez développer ce que vous avez appris dans ce tutoriel en https://www.digitalocean.com/community/tutorial_series/how-to-code-in-python-3 (apprendre à coder en Python 3].