Motivations
Jupyterlab est un outil extrêmement puissant et versatile pour traiter des données ou des questions nécessitant l'utilisation de code python
. Son installation est aisée avec pipenv
dans les machines linux
. Ce court tutorial explique comment installer python
, pipenv
et jupyterlab
dans une machine windows. le seul inconvénient est qyue ce système d'exploitation est incapable de détecter une application externe et il est nécessaire de passer par le powershell pour installer puis lancer jupyterlab.
Ce tutoriel à été réalisé pour les collègues du projet OpenScience n'utilisant pas linux
.
Sommaire
Téléchargements
1; python depuis le site python
1. Environnement dépendances et téléchargements
L'installation a été réalisée sur une machine virtuelle windows QEMU-KVM
à l'intérieur d'un ordinateur fonctionnant sous debian testing (bullseye)
. Le comportement est celui d'une machine windows ordinaire et ce tutoriel a aussi été testé avec succès dans une configuration "ordinaire". Comme il est maintenant possible de disposer d'un linux complet (plusieurs distributions proposées) à l'intérieur d'un windows en affichant l'écran via le serveur de terminaux par défaut de windows, on peut aussi utiliser cette solution. Toutefois ce mode de fonctionnement n'est pas encore très répandue et l'installation proposée ici s'applique à toute machine windows à jour.
Dans ce qui suit pour ne pas alourdir ni dater le texte nous avons utilisé python
sans préciser le numéro de la version qui est fourni par défaut dans le nom, utilisez le nom complet de la version que vous téléchargerez (python3 obligatoire !).
1.1 Installation de python
Télécharger l'installateur python
depuis le site python et l'installer avec la procédure habituelle d'installation de logiciels, bien penser à cocher la case permettant d'inclure python dans le PATH
, l'option finale permettant de contourner une des limitations de windows peut s'avérer aussi utile.
Vous disposez maintenant d'une part de 4 exécutables : * une console vous donnant directement accès à l' exécution de code python * une interface de programmation et débugging extrêmement sommaire (il existe d'autres outils libres plus performants si besoin) * une documentation interactive * une document sur les modules complémentaires
Ces exécutable sont directement accessibles directement depuis le menu des programmes.
D'autre part tous les outils de base python sont disponibles en ligne de commande dans le powershell
; par exemple en tapant python
dans un powershell
vous ouvrez une console python ce qui est absolument équivalent à lancer depuis le menu l'exécutable python
. Nous allons utiliser les commandes de base à l'intérieur d'un powershell
1.2 Installation de pipenv et jupyterlab
Une des fonctionnalités de python est de pouvoir s'exécuter dans un "environnement virtuel" c'est à dire que pour éviter de mélanger les modules particuliers ajoutés à python
pour un projet précis avec les modules communs appliqués à tout le système on crée un lieu fermé dans lequel on installe les modules qui s'exécutent "comme dans le système de base" mais qui ne peuvent s'exécuter que dans ce lieu fermé. On parle d'environnement "virtuel" car il ne s'agit pas d'un dossier physique du système mais d'une sorte de "couche" parallèle au système donnant accès à tous les espaces réels comme si on était l'environnement ordinaire... avec des programmes python
en plus!
On va utiliser l'outil d'installation pip
en ligne de commande puis l'outil pipenv
une fis qu'il sera installé. pipenv
crée l'espace virtuel lors de son premier lancement et le gère ensuite en maintenant toujours les dépendances de python
en état opérationnel.
- ouvrir une console
powershell
- installer pipenv :
pip install pipenv
- créer un répertoire dans lequel seront stockés les paramètres de l'environnement virtuel dans lequel on va travailler
OpenScience-jup
pour le jupyter d'Openscience avec la commandemkdir OpenScience-jup
pour notre exemple remplacerOpenScience-jup
par le nom qui vous convient. - aller dans le nouveau répertoire créé
cd OpenScience-jup
- installer
jupyterlab
dans un environnement virtuel (toutes les dépendances du logicielJupyterlab
seront automatiquement installées) avec la commandepipenv install jupyterlab
Du fait du téléchargement de plusieurs dépendances cette opération peut prendre quelques minutes
1.3 Modules complémentaires en fonction du projet
On utilise pour ce projet quelques modules de traitement et d'affichage de métadonnées ainsi que les modules permettant l'export en pdf des notebooks
:
pipenv install jupyterlab kotlin-jupyter-kernel rdflib pydotplus graphviz requests nbconvert jupyter_contrib_nbextensions
Jupyterlab est extrêmement versatile et abondamment utilisé, il existe pléthore d'extensions parfois redondantes avec des options différentes choiies par les développeurs. On peut directement ajouter ces extensions depuis le menu de gauche de Jupyterlab
mais cette fonctionnalité est récente (apparue en 3.0) et il peut subsister certains problèmes en général bien documentés sur github
au cas où vous les renconteriez. Il est possible de rajouter des extensions pour écrire du java, du scala, du latex, du C, etc... Ces extensions ne sont pas abordées ici (l'extension java est traitée dans le tutorial pour les raspberriesPi)
2. Lancement de jupyterlab
Jupyter lab est une application web qui va apparaître dans votre navigateur mais elle doit être lancée depuis une ligne de commande du powershell
windows ne reconnaissant pas tout seul les applications python
comme des applications à part entière.
- aller dans le nouveau répertoire créé
cd OpenScience-jup
- entrer dans l'environnement virtuel avec
pipenv shell
vous retrouvez une interface de commandepowershell
ordinaire - lancer
Jupyterlab
avecjupyter lab
au premier lancement jupyter demande de choisir un navigateur ensuite c'est automatique - pour quitter l'environnement virtuel taper
exit
cela renvoie dans lepowershell
ordinaire
L'entrée dans l'environnement virtuel se fait obligatoirement depuis le répertoire d'ancrage créé lors de l'installation de l'environnement virtuel (plusieurs environnements virtuels pouvant cohabiter sur des dossiers d'ancrage différents). Le lancement peut se faire depuis n'importe quel répertoire qui deviendra le répertoire de référence de la session Jupyterlab
lancée. Une facçon simple de démarrer est de copier dans OpenScience-jup
un fichier avec l'extension .ipynb
(notebook jupyter) depuis un des sites spécialisés par exemple nbviewer.
2.1. Quelques tests simples
Si vous voulez directement tester vos aptitudes de programmation en python
ouvrez un cahier (notebook) python3
copiez le texte suivant
print ('Coucou le monde')
cliquez sur la flèche d'exécution dans la barre de commandes de votre cahier, la commande s'exécute et imprime Coucou le monde . Vous venez d'écrire et d'exécuter avec succès votre premier programme python
.
Un peu plus compliqué : installer lightning-python
avec pipenv
puis lancer jupyterlab
et ajouter dans un cahier python3
le code suivant dans des blocs différents :
from lightning import Lightning
from numpy import random
#------------------------
lgn = Lightning(ipython=True, local=True)
series = random.randn(5, 50)
lgn.line(series)
#--------------------------
x = random.randn(1000)
y = random.randn(1000)
v = random.randn(1000)
lgn.scatter(x, y, alpha=0.5, values=v, colormap='Reds')
#----------------------------------------
mat = random.rand(100,100)
mat[mat<0.97] = 0
lgn.force(mat)
Cela vous donne un exemple de dessins simples.
2.2. Graphes avec plotly
(anomalie de version)
La limite de version imposée pour jupyterlab
est trp basse; créer un répertoire cloner la version actuelle de plotly.py
et aller dans le rertoire jupyterlab-plotly
modifier sa valeur.
mkdir Plotly
cd Plotly
git clone https://github.com/plotly/plotly.py.git
cd /home/vidal/Jupyter/JupVirtEnv/Plotly/plotly.py/packages/javascript/jupyterlab-plotly
Modifier les limites de version pour accepter la version de jupyterlab utilisée "@jupyterlab/rendermime-interfaces": "^1.3.0 || ^2.0.0 || ^3.1.0"
puis construire et installer le paquet
npm install
npm run build
jupyter labextension install
Commentaires