TATECHATLAS
◎ Français
Programmation

Créer un environnement virtuel Python sans mélanger les dépendances

Une configuration reproductible et une vérification simple de l’interpréteur utilisé par pip.

Dans ce guide

Créez un environnement virtuel par projet. Installez les paquets avec l’interpréteur de cet environnement afin de ne pas modifier les dépendances d’un autre projet ou de Python système.

Choisir la version de Python avant de commencer

Un environnement virtuel sépare les paquets, mais dépend du Python qui l’a créé. Consultez d’abord la version demandée par le projet. Avec plusieurs versions installées, désignez explicitement le bon interpréteur au lieu de supposer que python choisira celui attendu.

Créez .venv à la racine du projet et gardez le code à côté, jamais à l’intérieur. L’environnement doit pouvoir être recréé lors d’un changement de machine ou de Python. L’exemple ci-dessous convient à Linux et macOS ; certaines distributions Linux nécessitent un paquet système supplémentaire pour venv.

python3 --version
python3 -m venv .venv
source .venv/bin/activate

PowerShell sous Windows : l’activation reste facultative

Sous Windows, py -m venv .venv utilise le Python choisi par le lanceur. Pour une version installée précise, indiquez-la, par exemple py -3.12 -m venv .venv. Activez ensuite avec la commande PowerShell ci-dessous.

Si la politique d’exécution bloque Activate.ps1, appelez directement le python.exe de l’environnement. Il n’est pas nécessaire de modifier cette politique pour installer un paquet. L’activation ajuste seulement le shell courant ; l’environnement fonctionne sans elle.

py -m venv .venv
.\.venv\Scripts\Activate.ps1

# Direct use without activation:
.\.venv\Scripts\python.exe -m pip --version

Vérifier que Python et pip appartiennent au même environnement

Le préfixe .venv dans l’invite aide, mais sys.executable donne un contrôle plus clair. Son chemin doit se trouver dans le .venv de ce projet. python -m pip --version indique aussi l’emplacement de pip. Vérifiez dans le terminal qui lance réellement l’application.

Sélectionnez ensuite ce même interpréteur dans l’éditeur. ModuleNotFoundError apparaît souvent lorsqu’un terminal installe le paquet et qu’un autre Python démarre l’application. Pour un notebook, contrôlez également le noyau sélectionné.

python -c "import sys; print(sys.executable)"
python -m pip --version

Installer les dépendances prévues par le projet

Si requirements.txt existe, installez-le avec le Python de l’environnement. Pour un nouveau projet Django, python -m pip install Django installe Django ici. Pour un projet existant, son fichier de dépendances évite de remplacer involontairement les versions prévues.

Fixer les versions facilite la reproduction. pip freeze liste les distributions installées, mais ne décrit ni le système d’exploitation ni la version de Python et peut inclure des outils temporaires. Relisez son résultat avant d’en faire la référence du projet.

python -m pip install -r requirements.txt
python -m pip check

Recréer plutôt que copier l’environnement

Excluez .venv de Git et des archives de déploiement. Des chemins absolus et des paquets spécifiques à une plateforme rendent la copie entre Windows et Linux peu fiable. Transférez le code et les fichiers de dépendances, puis créez un nouvel environnement sur la machine cible.

Pour un service ou une tâche planifiée, utilisez le chemin complet du Python de l’environnement. Aucun terminal activé ne doit rester ouvert. La commande de démarrage indique alors clairement l’interpréteur utilisé.

Diagnostiquer une installation qui ne résout rien

Si pip manque, essayez le Python de l’environnement avec -m ensurepip --upgrade, lorsque la distribution le permet. Si vous avez créé l’environnement avec une mauvaise version de Python, recréez-le au lieu de le convertir sur place.

Si le paquet reste introuvable, comparez sys.executable, l’emplacement de pip et l’interpréteur de l’éditeur. Lisez l’erreur avant de recommencer : une compilation échouée ou une version incompatible diffère d’une installation dans le mauvais environnement. deactivate quitte l’activation du terminal courant.

python -m pip show Django
deactivate

Points à vérifier

  • Placez le code source hors de .venv.
  • Utilisez python -m pip avec le bon interpréteur.
  • Excluez le dossier de l’environnement de Git.

Python doit être installé avec le module venv. L’activation dépend du shell.

Sources

  1. Python: venv ↗
  2. Python Packaging User Guide ↗
  3. pip user guide ↗
  4. Python: sys ↗
  5. Python: ensurepip ↗
Retour en haut ↑