Les environnements virtuels

Contexte

Le problème

  1. Quand on installe un module, il installe/update les modules dont il a besoin.

  2. Les modules ont des numéros de version et donne des contraintes sur les versions de leurs dépendences.

  3. Si deux modules ont une dépendence commune, il n’est pas sûr que les contraintes sur les versions soient compatibles.

  4. 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 :

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

5294ad5f09a1493fb907d97f92453c35

Conda environments

Documentation complète

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

Documentation complète

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

  1. Créer un environnement virtuel conda avec python et numpy.

  2. Faire le lien entre votre IDE (spyder?) et cet environnement.