Le projet Jupyter fait suite à IPython en 2014, qui a marqué une véritable révolution dans le monde de Python grâce à la console interactive. Connu pour Jupyter Notebook, un carnet de feuilles en ligne qui permet d’afficher et d’exécuter du code (en Python, Julia, R, Scala et 96 autres langages) entouré de texte.

Véritable outil de formation et de démonstration, la suite Jupyter vient d’ouvrir au public son tout dernier petit : le JupyterLab. Qu’apporte-t-il et en quoi va-t-il, une fois encore, bousculer nos habitudes ? C’est ce que nous allons voir dans cet article axé sur l’outil de data science à ne pas négliger.

Retour sur le Notebook

(crédit : Jupyter)

Même si ce n’est pas l’objet de l’article, on souhaitait, à l’image du blog de Jupyter, revenir sur le succès incontestable du Notebook : sorti en 2011, il est utilisé par des millions d’utilisateurs. En effet, plus de 1,8 million de notebook sont accessibles sur Github et ce dans plusieurs langages, puisque pas moins de 100 sont supportés !

Comme le montre l’exemple ci-contre, Jupyter Notebook est utilisé pour afficher à la fois du texte explicatif et du code exécutable, pour pouvoir proposer à la communauté des tutoriels interactifs (vous pouvez ajouter des boutons ou des contrôles sur vos graphiques par exemple) ou pour démontrer vos résultats.

JupyterLab : vers un IDE ultra-complet ?

JupyterLab pousse le concept encore plus loin, en proposant de prendre en charge :

  • Vos notebook
  • Un éditeur de texte (de type notepad++)
  • Un terminal (cmd, bash)
  • Un visualiseur de données (de type Excel)
  • Des extensions personnalisées de la communauté

A l’image d’un IDE, vous aurez donc tous les outils pour travailler dans le Lab qui présente en plus l’avantage de pouvoir être hébergé sur un serveur et rendu accessible à tous vos collègues (grâce à JupyterHub) ! Vous pourrez évidemment déplacer les différents composants de votre environnement, exécuter des blocs de code spécifiques, lier un noyau à une console pour faire des tests sans dégrader vos variables, etc… comme dans Spyder, un autre IDE.

Si vous voulez le tester par vous-même…

jupyterlab exemple
(crédit : Jupyter)

Pour l’instant, JupyterLab est encore en version beta et il lui manque quelques fonctionnalités (comme par exemple pouvoir exécuter du code sélectionné dans la console avec CTRL + Enter), mais l’expérience utilisateur reste très bonne.

Enfin, si vous souhaitez mettre en place des extensions, que ce soit pour changer le thème, les éditeurs, les menus, les raccourcis clavier, ajouter une API d’accès ou autre, vous pouvez chercher sur Github le tag « jupyterlab-extension« . A l’heure actuelle, il y en a 22 dont une connexion à Git et une à JupyterHub que l’on recommande.

Mise en place de votre propre laboratoire

Dans cette dernière partie, on va mettre en place notre propre laboratoire JupyterLab pour mener à bien nos expériences.

Tout d’abord, au cas où vous en auriez besoin en complément de nos explications, voici la doc de JupyterLab.

Commençons par tout installer, via cmd (après avoir installé Python) :

pip install jupyterlab

Puis pour le lancer :

jupyter lab

On aura vu plus dur pour démarrer un projet. Pour gagner du temps, on a téléchargé depuis le projet d’exemple de JupyterLab les fichiers Lorenz.ipynb et lorenz.py

Votre laboratoire est prêt ! Vous pouvez y créer des fichiers, en importer, les exporter…

Maintenant on va voir comment l’exposer sur le réseau grâce à JupyterHub.

Commencez par saisir la commande suivante dans Linux (vous ne pouvez pas héberger de serveur JupyterHub dans Windows) :

python3 -m pip install jupyterhub
npm install -g configurable-http-proxy

Une fois le serveur installé, vous pouvez le démarrer avec la commande suivante (le sudo permet d’autoriser plusieurs utilisateurs simultanément)

sudo jupyterhub

Enfin, pour accéder au hub, allez à l’adresse https://localhost:8000

Vous serez alors invités à saisir vos identifiants de connexion Linux et bénéficierez de tout ce qui est installé sur le serveur (dépendances).

Pour accéder au Hub, ajoutez en fin d’URL /hub, pour le Notebook, /tree et pour le Lab, /lab

Enfin, si vous souhaitez installer l’extension :

jupyter labextension install @jupyterlab/hub-extension

Crédit de l’image de couverture : Jupyter