Skip to content

environnements virtuels

on voit ici comment créer de multiples environnements Python; ce n’est sans doute pas utile dans l’immédiat, mais cela vous sera peut-être utile bientôt…

on l’a mentionné un peu plus haut, cela peut être utile de créer plusieurs environnements Python différents; c’est utile notamment :

  • si vous travaillez sur plusieurs projets différents, qui ont chacun leur ensemble de dépendances, pas forcément compatibles entre elles; par exemple, l’un utilise Django-4.x et l’autre Django-3.x ou même, l’un utilise python-3.13 et l’autre python-3.12

  • ou encore, lors de la sortie d’une nouvelle release de Python, que vous voulez essayer sans tout casser

il existe plusieurs solutions pour gérer cela, notamment la solution virtualenv, mais nous allons pour notre part nous concentrer sur miniconda, puisque c’est ce qu’on a installé

c’est un des points forts de miniconda, que de permettre de facilement créer/activer/détruire des environnements multiples; on entend par environnement :

  • un socle Python accessible par les commandes python et pip
  • installé au départ sans aucune librairie tierce (enfin si, disons plutôt le strict minimum, comme pip), pour que vous puissiez construire votre environnement de scratch

les commandes utiles sont

  • conda env list
  • conda create -n mon_environnement python=3.13
  • conda env remove -n mon_environnement

et pour gérer tout cela, on dispose de commandes pour changer d’environnement; le modèle mental est simple :

  • lorsque vous créez un terminal, vous êtes dans l’environnement qui s’appelle base, c’est celui que vous avez utilisé jusqu’ici

  • vous pouvez passer dans un autre environnement avec
    conda activate mon_environnement
    qui a pour effet, entre autres, de modifier votre PATH pour que la commande python soit cherchée ailleurs

  • pour en sortir, et revenir dans base, vous faites
    conda deactivate

vous remarquerez, dans l’exemple qui suit, comme le prompt bash reflète l’environnement dans lequel on se trouve
ça semble relativement impératif si on ne veut pas s’emmêler les pinceaux
surtout n’utilisez pas cette technologie si votre prompt ne montre pas l’environnement courant,
c’est beaucoup trop facile de se tirer une balle dans le pied si on n’a pas cet aide-mémoire en permanence sous les yeux !

n’hésitez pas à installer un prompt plus sophistiqué, comme starship, qui vous donnera plein d’infos sur votre environnement courant et vous évitera de vous prendre les pieds dans le tapis !

voici à titre indicatif une session sous MacOS pour illustrer tout ceci

Terminal window
[base] ~ $ conda env list
conda environments:
#
base * /Users/tparment/miniconda3
<snip ...>
Terminal window
[base] ~ $ conda create -n demo-py313 python=3.13
Collecting package metadata (current_repodata.json): done
Solving environment: done
<snip ...>
Terminal window
[base] ~ $ conda env list
conda environments:
#
base * /Users/tparment/miniconda3
demo-py313 /Users/tparment/miniconda3/envs/demo-py313
<snip...>
Terminal window
[base] ~ $ conda activate demo-py313
[demo-py313] ~ $

très peu de choses

Terminal window
[demo-py313] ~ $ pip list
Package Version
---------- -------------------
certifi 2020.4.5.1
pip 20.0.2
setuptools 46.2.0.post20200511
wheel 0.34.2
Terminal window
[demo-py313] ~ $ pip install numpy==1.15.3
Terminal window
[demo-py313] ~ $ python --version
Python 3.8.2
Terminal window
[demo-py313] ~ $ conda deactivate
[base] ~ $
Terminal window
[base] ~ $ python --version
Python 3.7.6

on n’a pas perturbé l’environnement de départ

Section titled “on n’a pas perturbé l’environnement de départ”
Terminal window
[base] ~ $ pip show numpy
Name: numpy
Version: 1.18.1

pour détruire l’environnement en question

Section titled “pour détruire l’environnement en question”
Terminal window
[base] ~ $ conda env remove -n demo-py313
Remove all packages in environment /Users/tparment/miniconda3/envs/demo-py313:
  • créez un nouvel environnement miniconda avec Python-3.13
  • de retour dans vs-code, sélectionnez cet environnement

notez que ce réglage est associé au workspace vs-code

c’est quoi un workspace ? ça correspond en gros à la sauvegarde de l’état de l’éditeur lui-même : la liste des fichiers en cours d’édition, les onglets ouverts, etc…

pour expérimenter, créez une session vs-code dans un directory, choisissez votre environnement Python, sortez de la session; ré-ouvrez vs-code sur le même répertoire, vous devez retrouver ce réglage