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
# 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 syncExemple
# 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
- 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).
- 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.
- 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.
- 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.
- 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
- importimport charge un module de la bibliothèque standard (math, json, datetime) ou un paquet installé (pandas, numpy). Placez les imports en tête de fichier pour rendre les dépendances visibles.
- Fichiers, pathlib & csvopen avec with lit et écrit des fichiers en les refermant proprement, pathlib.Path manipule les chemins et csv découpe les lignes. Indiquez toujours encoding="utf-8" pour garder les accents.