JupyterLab est un service web, disponible chez Rezel à l’adresse https://notebook.rezel.net/, qui permet l’exécution en ligne de code Python et l’utilisation interactive de notebooks Jupyter.

Par défaut, chaque utilisateur peut utiliser Python 2 ou 3, et disposer des packages présents par défaut dans ces environnements, mais pour pouvoir installer et utiliser des packages personnalisés, il faut au préalable créer un environnement conda, et faire en sorte que JupyterLab puisse le reconnaître.

Ce tuto a pour objectif de montrer comment créer facilement et rapidement un tel environnement, à partir du terminal disponible dans JupyterLab (File -> New -> Terminal). Vous pouvez simplement exécuter les commandes présentées à la fin de cette page, ou lire ce qui va suivre pour mieux comprendre les concepts qui entrent en jeu, à commencer par la notion de “Kernel” dans JupyterLab.

Les “Kernels” dans JupyterLab

Comme dit précédemment, JupyterLab permet d’exécuter (entre autres) du code Python. Pour cela, le service repose sur des “Kernels”, qui exécutent le code qui leur est présenté !

Par exemple, le Kernel ipython permet à JupyterLab d’exécuter le code Python contenu dans un notebook, et d’ouvrir une console Python. Ce kernel s’installe dans un environnement Python de la même manière que n’importe quel autre package (avec conda, ou pip).

Deux environnements Python sont installés globalement sur le système, et sont ainsi disponibles par défaut pour tous les utilisateurs (un environnement Python 2, et un autre Python 3). ipython a ainsi été installé dans chaque environnement, au travers du package ipykernel.

Pour créer ces environnements, Anaconda a été utilisé.

Les environnements Anaconda

Anaconda est une distribution Python qui s’accompagne d’un outil en ligne de commande, conda, permettant de créer, gérer, et supprimer des environnements Python utilisant chacun un ensemble différents de packages, voire même des versions différentes de Python.

Un environnement Anaconda peut être créé à l’aide de la commande suivante: conda create --name <nom-de-l-environnement> <liste des packages à installer>

Par exemple, pour créer un environnement Anaconda nommé test, utilisant Python 3.7, et contenant le package ipykernel, il faut exécuter la commande conda create --name test python=3.7 ipykernel.

Une fois créé, il est nécessaire d’activer l’environnement pour pouvoir l’utiliser, à l’aide de la commande conda activate <nom-de-l-environnement>. Lorsqu’un environnement Anaconda est activé, les commandes relatives à Python (python, pip, …) permettent d’intéragir avec lui.

Remarque: Par défaut, un environnement Anaconda est créé dans ~/.conda/envs, et n’est ainsi visible que par l’utilisateur qui l’a créé. Néanmoins, lorsque l’utilisateur dispose des permissions suffisantes, il est possible de créer un environnement global, visible par tous les utilisateurs, en utilisant l’option --prefix <chemin>

Installer d’autres packages dans l’environnement

Au-delà des packages installés lors de la création d’un environnement Anaconda, il est possible d’installer des packages supplémentaires dans l’environnement actif via conda install <package> ou pip install <package>.

Par exemple, pour installer numpy, il est nécessaire d’exécuter l’une des deux commandes ci-dessous:

  • conda install numpy

  • pip install numpy

Installer un Kernel

Lorsque ipykernel est installé dans un environnement Python, il doit être enregistré auprès de JupyterLab pour être utilisable sur le service. Pour cela, la commande suivante doit être exécutée: python -m ipykernel install --user --name <nom-a-donner-au-kernel> --display-name "Nom à donner au Kernel".

Par exemple, pour enregistrer un kernel Python pour l’UE OASIS, il faut exécuter la commande python -m ipykernel install --user --name oasis --display-name "Python (OASIS)"

Remarque: Le paramètre --user permet d’enregistrer le Kernel uniquement pour l’utilisateur actif. Sans ce paramètre, et sous réserve de permissions, il est possible d’enregistrer un Kernel pour tous les utilisateurs.

En résumé (tl;dr)

Pour créer un environnement Anaconda personnel et le lier à JupyterLab, il faut exécuter les commandes suivantes:

  • conda create --name <nom-de-l-environnement> python=3.7 ipykernel

  • conda activate <nom-de-l-environnement>

  • python -m ipykernel install --user --name <nom-a-donner-au-kernel> --display-name "Nom à donner au Kernel"

Ensuite, il est possible d’installer autant de packages que nécessaire via la commande conda install <package> ou pip install <package> (mais avant d’installer des packages, il faut bien s’assurer d’activer le bon environnement via conda activate <environnement> !)

Remarque: Après avoir créé votre premier environnement Anaconda, il est nécessaire de redémarrer le terminal (ie: d’en ouvrir un autre) pour pouvoir l’activer.