Aller au contenu
Bonnes pratiques

Environnements : venv, pip, uv

Un environnement virtuel isole les paquets de chaque projet ; pip ou uv les installent, et pyproject.toml avec un fichier de verrouillage fige les versions. C'est la base d'un projet reproductible.

  • venv
  • pip
  • uv
  • requirements.txt
  • pyproject.toml
  • environnement virtuel
  • dépendances

Syntaxe

Modèle
# Outils standardpython -m venv .venvsource .venv/bin/activate        # Windows : .venv\Scripts\activatepython -m pip install pandaspython -m pip freeze > requirements.txt# uv (Astral)uv init mon-projetuv add pandas matplotlibuv run python analyse.pyuv sync

Exemple

Exemple concret
# Démarrer un projet d'analyse reproductible avec uvuv init analyse-ventes --python 3.12cd analyse-ventesuv add pandas matplotlib       # met à jour pyproject.toml et uv.lock, crée .venvuv add --dev pytest ruff       # outils réservés au développementuv run python main.py          # exécute dans l'environnement du projet# Un collègue clone le dépôt, puis :uv sync                        # → recrée .venv avec exactement les mêmes versions# Extrait du pyproject.toml obtenu (versions indicatives)[project]name = "analyse-ventes"version = "0.1.0"requires-python = ">=3.12"dependencies = ["matplotlib>=3.9", "pandas>=2.2"]

À retenir

  1. Un environnement par projet : installer dans le Python du système mélange les versions et finit par casser d'autres projets. Sur la plupart des Linux récents et avec le Python de Homebrew, pip refuse d'ailleurs d'y installer (erreur externally-managed-environment, PEP 668).
  2. pyproject.toml décrit le projet et ses dépendances directes (norme PEP 621) ; le fichier de verrouillage uv.lock fixe la version exacte de chaque paquet, dépendances indirectes comprises. Versionnez les deux dans git, jamais le dossier .venv.
  3. uv, de la société Astral, réunit en un outil pip, venv, pip-tools et pyenv : il installe aussi Python lui-même (uv python install 3.12) et résout les dépendances en quelques secondes. Avec pip, requirements.txt reste le format le plus répandu.
  4. Piège : un pip install lancé sans environnement activé installe ailleurs que prévu. Vérifiez avec python -m pip --version, ou passez par uv run, qui utilise toujours l'environnement du projet.
  5. Python 3.10 n'est plus maintenu depuis octobre 2026 : démarrez un nouveau projet en 3.12 ou plus récent. Dans l'éditeur du Campus, rien à installer : Pyodide fournit Python 3.12 avec numpy, pandas et matplotlib.

Voir aussi