Les environnements virtuels
Contexte
Le problème
Quand on installe un module, il installe/update les modules dont il a besoin.
Les modules ont des numéros de version et donne des contraintes sur les versions de leurs dépendences.
Si deux modules ont une dépendence commune, il n’est pas sûr que les contraintes sur les versions soient compatibles.
Plus on installe de modules, plus les conflits sont probables.
On peut accepter de revenir sur une version antérieur pour obtenir la compatibilité.
(pas toujours possible)
Mais pourquoi être contraint sur la version d’un module A à cause d’un module B alors que A et B ne seront jamais utilisés ensemble ?
Il ne faut pas installer simultanément les modules A et B ! Comment faire ?
La solution
Faire des boîtes !
Environnement virtuel (cf doc) :
Environnement d’exécution isolé (en mode coopératif) qui permet aux utilisateurs de Python et aux applications d’installer et de mettre à jour des paquets sans interférer avec d’autres applications Python fonctionnant sur le même système.
Il y a plusieurs manières d’y arriver :
une solution standard : venv
une solution très employée avec python scientifique : conda environments
Dans les deux cas, il s’agit d’outils en ligne de commande qui proposent les actions essentielles suivantes:
créer un environnement virtuel
à faire une fois par environnement
activer un environnement
à faire dans chaque console où l’on souhaite travailler
l’environnement actif est indiqué dans la console
une fois l’environnement activé, les installations se font dans l’environnement
Conda environments
conda
est un outil en ligne de commande, en plus d’installer des modules, peut créer des environnements virtuels complètement isolés.
En bref
Créer l’environnement toto
avec python 3.10
conda create -n toto python=3.10
Activer l’environnement toto
conda activate toto
Désactiver l’environnement courant
conda deactivate
Installer des modules dans l’environnement actif
pip install truc
conda install truc
Voir tout ce qui est installé dans un environnement
conda list # environnement actif
conda list -n toto
Venv
Il s’agit de l’outil standard, fournit directement avec python.
léger et rapide
il ne permet pas de gérer plusieurs versions de python simultanément
il n’est pas compatible avec
conda install
Exercices
Créer un environnement virtuel conda avec python et numpy.
Faire le lien entre votre IDE (spyder?) et cet environnement.