Créer un carnet Jupyter#
Logiciels de création de carnets Jupyter#
Organisation des logiciels#
Comme tous les logiciels de création de carnets électroniques, celui du projet Jupyter est articulé autour de deux composants :
un noyau d’exécution (kernel)
une application composée d’une interface utilisateur (GUI ou front-end) et d’une dorsale (back-end)
Le projet Jupyter propose des noyaux d’exécution pour de nombreux langages informatiques différents. Les trois premiers langages natifs du projet sont Julia, Python et R qui ont donné le nom Jupyter. Il existe également des noyaux d’exécution pour des langages compilés comme le C/C++ grâce à l’interface Clang, ou des langages propriétaires comme Matlab (Matlab Integration for Jupyter).
L’application Jupyter est une application web. L’utilisateur interagir au travers d’un navigateur web comme Chrome, Edge, Safari ou Firefox qui peut s’exécuter sur un matériel (device) aussi varié qu’un ordinateur de bureau, un ordinateur portable, une tablette ou un smartphone. Deux interfaces (front-end) sont disponibles, « Jupyter Notebook » la version originelle simple et « JupyterLab » la version plus moderne plus riche.
Deux dorsales (back-end) de l’application Jupyter sont également disponibles, une version mono-utilisateur que l’on nommera « Jupyter mono » ou simplement Jupyter et une version multiutilisateur Jupyter Hub. Selon les requêtes de l’utilisateur par l’interface « Jupyter Notebook » ou « JupyterLab », la dorsale de Jupyter gère les demandes d’exécution au noyau et les demandes de lecture ou d’écriture dans le fichier qui stocke le carnet (extension *.ipynb).
La Fig. 4 présente l’organisation des différents composants logiciels. La répartition des services dans différents composants logiciels offre de la souplesse quant à leur distribution dans différentes unités de traitement.
Fig. 4 Structure logicielle type proposée par le projet Jupyter pour la création d’un carnet Jupyter.#
Note
En anglais, il faut noter l’ambigüité du terme « Jupyter Notebook » qui désigne à la fois le carnet Jupyter et une interface utilisateur.
L’interface utilisateur « Jupyter Notebook » est en train d’évoluer vers l’interface « NbClassic » qui apporte beaucoup de nouvelles fonctionnalités.
En marge du projet Jupyter, le projet JupyterLite propose une structure logicielle plus compacte en intégrant le noyau d’exécution dans l’application web grâce à la technologie WebAssembly (wasm), voir Fig. 5. Si cela fait perdre de la souplesse quand au choix des noyaux d’exécution et de leurs versions, en contrepartie, l’application est entièrement exécutée dans le navigateur web (front-end, back-end et noyau d’exécution), ce qui facilite l’organisation matérielle et donc l’installation et le partage de JupyterLite.
Fig. 5 Structure logicielle pour la création d’un carnet Jupyter avec l’application web JupyterLite.#
JupyterLite se décline également en application autonome qui inclut à la fois un moteur de navigateur web, l’application web et le noyau en Webassembly, voir Fig. 6
Fig. 6 Structure logicielle pour la création d’un carnet Jupyter avec l’application JupyterLite.#
Indépendamment du projet Jupyter, d’autres projets collaboratifs et des éditeurs de logiciels proposent des applications classiques (pas des applications web) pour créer et modifier des carnets Jupyter. La structure logicielle de ces applications est illustrée Fig. 7, elle montre qu’un noyau d’exécution doit toujours être disponible pour interagir avec les carnets. Les principales applications sont :
JupyterLab Desktop, une application gratuite open source multiplateforme et un moyen rapide et facile de commencer avec Jupyter. L’application propose en un clic d’installer un noyau d’exécution Python.
Visual Studio code, une application gratuite open source multiplateforme de Microsoft qui avec son extension Jupyter fourni un très puissant environnement de développement qui supporte de nombreux langages. L’application Visual Studio code peut être installée et lancée depuis le navigateur de la distribution Anaconda.
PyCharm, une application propriétaire payante spécialisée pour le langage Python. Il existe une version limitée, mais gratuite pour l’enseignement.
Spyder, une application gratuite open source multiplateforme dédié à Python qui avec son extension Spyder notebook plugin prend en charge les carnets Jupyter.
Fig. 7 Structure logicielle pour la création d’un carnet Jupyter à partir d’un application « classique ».#
Organisation du matériel#
La Fig. 8 présente deux organisations matérielles pour créer et éditer un carnet Jupyter avec les outils du projet Jupyter.
À gauche, une installation locale pour laquelle l’utilisateur est autonome. En contrepartie tous les composants logiciels doivent être installés et configurés sur le poste de travail de l’utilisateur.
À droite, une installation distante pour laquelle l’utilisateur a uniquement besoin d’un navigateur web. La connexion à un serveur « Jupyter Hub » lui apporte toutes les fonctionnalités nécessaires.
Fig. 8 Deux organisations matérielles pour la création d’un carnet Jupyter, à gauche une installation « locale » et à gauche une installation « distante ».#
Lancement de Jupyter#
Pour une installation locale#
D’un point de vue pratique, la configuration locale est plus complexe à installer. La distribution Anaconda facilite l’installation, la configuration et le lancement de l’application.
Depuis une interface de commandes#
La ligne de commande est saisie par une interface comme un « Terminal » sous Mac/Linux, ou comme l“« invite de commande » sous Windows. Cette interface de commande peut être obtenue depuis le navigateur Anaconda en suivant les instructions de la Fig. 11, ou bien avec Windows, en cliquant sur l’item « Anaconda Prompt » ou « Anaconda Powershell Prompt » disponible depuis le menu Windows.
Fig. 11 Lancement d’une interface de commande depuis le navigateur Anaconda.#
La commande pour lancer Jupyter avec l’interface Jupyter Notebook est :
jupyter notebook
La commande affichera quelques informations sur le serveur, y compris l’URL de l’application web (par défaut, http://localhost:8888), puis le navigateur web par défaut ouvre cette URL.
(base) PS C:\Users\jovyan> jupyter notebook
...
[I 2024-05-20 13:16:19.137 ServerApp] jupyterlab | extension was successfully loaded.
[I 2024-05-20 13:16:19.145 ServerApp] nbclassic | extension was successfully loaded.
[I 2024-05-20 13:16:19.156 ServerApp] notebook | extension was successfully loaded.
[I 2024-05-20 13:16:19.156 ServerApp] Jupyter Server 2.10.0 is running at:
[I 2024-05-20 13:16:19.156 ServerApp] http://localhost:8888/tree?token=6abd15b427782fcacd00160c607c8e823f3158a73494e42b
[I 2024-05-20 13:16:19.156 ServerApp] http://127.0.0.1:8888/tree?token=6abd15b427782fcacd00160c607c8e823f3158a73494e42b
[I 2024-05-20 13:16:19.156 ServerApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
La commande pour lancer Jupyter avec l’interface JupyterLab est :
jupyter lab
Note
Le lancement de Jupyter par une ligne de commande permet
de visualiser des informations pour diagnostiquer d’éventuels problèmes, soit au lancement de Jupyter, soit au cours de son utilisation.
de particulariser le lancement de Jupyter, exemples :
jupyter lab --ServerApp.ip=138.231.1.1 # start JupyterLab listenning on 138.231.1.1
jupyter lab --core-mode # start JupyterLab in core mode, with no extensions
jupyter lab --certfile=mycert.pem # use SSL/TLS certificate
Pour une installation distante#
L’organisation distante nécessite une connexion au serveur JupyterHub de votre choix, par exemple une connexion à https://jupyterhub.ijclab.in2p3.fr/ pour l’Université Paris-Saclay (service hébergé par le Mésocentre). Après une phase d’authentification avec votre identité numérique de l’Univerté Paris-Saclay, la Fig. 12 montre la page d’accueil qui propose de choisir entre l’interface Jypyter Notebook (bouton « Start Jupyter ») et l’interface JupyterLab (bouton « Start JyputerLab »).
Fig. 12 Lancement Jupyter depuis le site https://jupyterhub.ijclab.in2p3.fr/.#
Interface JupyterLab#
L’interface de JupyterLab se compose :
d’une barre de menu située en haut qui exposent les actions disponibles dans JupyterLab avec leurs raccourcis clavier.
d’une zone de travail principale qui permet d’organiser des documents (carnets, fichiers texte, etc.) et d’autres activités (terminaux, consoles de code, etc.) dans des panneaux d’onglets qui peuvent être redimensionnés ou subdivisés avec la possibilité de faire de glisser un onglet d’une zone vers une autres.
d’une barre latérale gauche rétractable qui propose
un navigateur de fichiers
la liste des noyaux et des terminaux en cours d’exécution
la table des matières qui permet de visualiser et de naviguer facilement sur la structure d’un document.
un gestionnaire d’extensions (éventuellement désactivé par l’administrateur système)
d’éventuelles extensions installées, par exemeple
une interface git
d’une barre latérale droite rétractable qui propose
un inspecteur de propriétés
un débogueur de code
Fig. 13 Organisation de l’interface JupiterLab.#
De nombreuses éléments de JupyterLab, tels que les carnets, les consoles ou les onglets, disposent de menus contextuels auxquels on peut accéder en cliquant avec le bouton droit de la souris sur l’élément (pour accéder au menu contextuel natif du navigateur web, maintenir la touche Majuscule enfoncée et cliquer avec le bouton droit de la souris.
Création d’un carnet avec JupyterLab#
La Fig. 14 présente trois façons de créer un nouveau carnet Jupyter.
Par le lanceur - Par défaut, l’interface JupyterLab s’ouvre en présentant l’onglet « Lanceur » dans l’espace de travail principal. Dans la section « Notebook », le lanceur liste des noyaux d’exécution disponibles pour Jupyter. Cette liste varie d’une installation à l’autre. Pour créer un carnet Jupyter qui exécute du code Python 3, il suffit de cliquer sur l’icône « Python 3 (ipykernel) ».
Par le navigateur de fichier (barre latérale gauche) - Un clic droit dans la zone des fichiers fait apparaitre un menu contextuel qui propose la création d’un nouveau carnet avec l’item « Nouveau notebook ». Après avoir sélectionné l’item, Jupyter propose de choisir le noyau d’exécution parmi la liste des noyaux disponible.
Par le menu (en haut de l’interface) - Sélectionner « Fichier → Nouveau → Notebook » et Jupyter propose de choisir le noyau d’exécution parmi la liste des noyaux disponibles.
Fig. 14 Trois façons de créer un nouveau carnet Jupyter.#
Quelque soit la méthode de création utilisée, Jupyter crée un fichier nommé Untitled.ipynb dans le répertoire courant (répertoire présenté dans le navigateur de fichier - barre latérale gauche) et il l’ouvre dans un nouvel onglet de l’espace de travail (Fig. 15).
Fig. 15 Nouveau carnet vierge dans un onglet de l’espace de travail.#
Édition d’un carnet#
Note
Voir le tutoriel ressource de l »université Paris-Saclay :

