Contents
Création de l’environnement virtuel
Avec le lanceur Python :
py -3.12 -m venv .venv
Activation dans PowerShell :
.venv\Scripts\Activate.ps1
Activation dans cmd.exe :
.venv\Scripts\activate.bat
Désactivation :
deactivate
Sous MacOS ou Linux
Sur Mac OS et Linux, les choses sont beaucoup plus simples.
python3.12 -m venv .venv
Activation :
source .venv/bin/activate
Désactivation :
deactivate
Qu’est-ce que fait l’activation ? C’est-à-dire lorsqu’on clique sur ce script activate qui dépend de la plateforme sur laquelle on est, du nom des coupons de la plateforme sur laquelle on est.Vous avez l’environnement PowerShell, le Bash, le MacOS.Ce ne sont pas les mêmes scripts qui sont utilisés.
L’activation ne démarre pas une machine virtuelle.
Elle modifie principalement la variable PATH afin que :
python pip
désignent en priorité les exécutables situés dans .venv.
Sous Windows :
.venv\Scripts\python.exe .venv\Scripts\pip.exe
Sous Linux :
.venv/bin/python .venv/bin/pip
Il est possible d’utiliser un environnement virtuel sans l’activer :
Sous Windows :
.venv\Scripts\python.exe script.py .venv\Scripts\python.exe -m pip install requests
Sous Linux :
.venv/bin/python script.py .venv/bin/python -m pip install requests
L’activation est donc un confort, pas une obligation technique.
Vérifier l’environnement actif
Les commandes suivantes vous permettent de diagnostiquer votre version de Python. C’est à peu près la première chose que vous faites à chaque fois que vous avez un problème, avant de chercher à résoudre, sachez avec quoi vous travaillez.
Sous Windows :
where python python -c "import sys; print(sys.executable)" python -m pip --version
Sous Linux :
which python python -c "import sys; print(sys.executable)" python -m pip --version
Résultat attendu :
...\mon-projet\.venv\Scripts\python.exe
ou :
.../mon-projet/.venv/bin/python
Doit-on versionner .venv ?
La réponse est non.D’ailleurs ce répertoire, on peut l’appeler de plusieurs façons.
Dans .gitignore :
.venv/ venv/ env/ __pycache__/ *.pyc
Un environnement virtuel :
- contient des chemins absolus ;
- dépend du système d’exploitation ;
- dépend de l’architecture ;
- peut contenir des binaires natifs ;
- peut devenir très volumineux.
Il ne doit donc pas être copié entre machines ni ajouté à Git.
On versionne les fichiers décrivant les dépendances, pas l’environnement lui-même.
Réparer un environnement
Lorsqu’un environnement devient incohérent, le réparer paquet par paquet est souvent une mauvaise stratégie.
Approche propre :
Sous PowerShell :
deactivate Remove-Item -Recurse -Force .venv py -3.12 -m venv .venv .venv\Scripts\Activate.ps1 python -m pip install --upgrade pip python -m pip install -r requirements.txt
Sous Linux :
deactivate rm -rf .venv python3.12 -m venv .venv source .venv/bin/activate python -m pip install --upgrade pip python -m pip install -r requirements.txt
