Installer python, jupyterlab et pipenv dans une machine windows

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

  1. Environnement dépendances et téléchargements

    1.1 Installation de python

    1.2 Installation de pipenv et jupyterlab

    1.3 Modules complémentaires en fonction du projet

  2. Lancement de jupyterlab

    2.1 Quelques tests simples

    2.2 Graphes avec plotly (anomalie de version)


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 commande mkdir OpenScience-jup pour notre exemple remplacer OpenScience-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 logiciel Jupyterlab seront automatiquement installées) avec la commande pipenv 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 commande powershell ordinaire
  • lancer Jupyterlab avec jupyter lab au premier lancement jupyter demande de choisir un navigateur ensuite c'est automatique
  • pour quitter l'environnement virtuel taper exit cela renvoie dans le powershell 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

Webographie

  1. python
  2. Modules complémentaires python
  3. jupyterlab
  4. nbviewer

Commentaires