Les environnements python
Définition
Un environnement Python est un contexte d'exécution qui contient un interpréteur Python et un ensemble de dépendances installées. L'idée derrière est d'isoler les projets afin d'éviter les conflits de versions entre bibliothèques.
Exécuter le code Python
Interpréteur global
C'est le Python installé au niveau système (python, python3). C'est très simple, pas besoin de gérer des environnements,
mais c'est bien uniquement pour des petits scripts Python en "one shot" et des notebooks simples d'exploration car on peut
rapidement avoir des problèmes avec les dépendances sur le long terme. Pour ma part, que ce soit les scripts ou les notebooks,
j'utilise à minima un environnement virtuel .venv avec optionnellement un petit requirements.txt minimale, d'autant plus que
ce n'est pas difficile de le créer et gérer.
Environnement virtuel .venv
venv est un module natif de Python qui permet de créer des environnements virtuels isolés pour différents projets.
C'est un peu comme si on avait un Python installé pour chaque projet.
Chargement…
On peut aussi créer un .venv directement depuis VS Code ou Cursor (c’est ce que je fais le plus souvent) :
- Ouvrir le dossier du projet à la racine du repo.
Ctrl+Shift+P(palette de commandes).- Choisir Python: Create Environment (parfois libellé Create Virtual Environment).
- Sélectionner Venv puis l’interpréteur Python souhaité.
L’éditeur crée le dossier .venv et propose en général d’activer cet environnement pour le workspace.
Nota bene : Pour les jupyter notebooks, l’environnement seul ne suffit pas. Il
faut installer ipykernel (et souvent jupyter) dans le .venv, puis sélectionner ce kernel
dans le notebook (coin haut à droite, ou commande Select Kernel).
Chargement…
Environnement Conda / Mamba
Conda/Mamba gèrent à la fois Python et des dépendances non-Python (C/C++, MKL, CUDA, etc.). Très utile par exemple si on souhaite entrainer un modèle de machine learning comme un RandomForest ou XGBoost sur le GPU plutôt que le CPU avec cuML (CUDA) au lieu de scikit-learn.
Chargement…
C'est ce que je recommande pour les projets qu'on souhaite scaler.
Bonus : Micromamba
Sur ma machine Linux, j'utilise Micromamba, une version minimaliste de Mamba, qui est un simple exécutable, pas besoin d'Anaconda. Sur Windows, je reste sur .venv avec pip.
Chargement…
Installer des paquets
Une fois l’environnement activé (ou sélectionné dans l’éditeur), on installe des bibliothèques : numpy, pandas, fastapi, etc.
pip
pip télécharge des paquets depuis un index (souvent PyPI) dans l’environnement courant.
C’est l’installateur le plus courant avec venv.
Chargement…
Ce que je fais généralement sur un petit projet : .venv activé → pip install -r requirements.txt.
conda / mamba
Dans un environnement conda, on installe via conda install (binaires conda) ou parfois pip pour ce qui manque sur conda-forge.
Chargement…
Pratique quand on a besoin de libs lourdes (MKL, CUDA, etc.) sans tout compiler à la main.
poetry
Poetry gère dépendances + lock à partir de pyproject.toml.
Chargement…
Utile quand le projet est déjà structuré autour de Poetry (équipe, packaging, releases).
uv
Alternative moderne, très rapide, souvent utilisée comme pip/poetry accéléré.
Chargement…
Les fichiers de dépendances
requirements.txt
Format historique côté pip.
- simple à lire,
- très répandu,
- souvent utilisé avec
pip freeze(attention, peut inclure trop de dépendances transitoires).
Chargement…
environment.yml / environment.yaml
Format Conda/Mamba : version Python + paquets conda + paquets pip éventuels.
Chargement…
pyproject.toml
Format moderne standard (PEP 621) : métadonnées de projet, dépendances et configuration d'outils (poetry, hatch, ruff, etc.).
Chargement…
Les fichiers lock
Ils verrouillent les versions exactes pour des installations reproductibles.
Exemples :
poetry.lockpdm.lockuv.lockconda-lock.yml
Sans lock file, deux machines peuvent installer des versions différentes.
Exemples concrets
Résumé
Références
https://docs.python.org/3/library/venv.html https://packaging.python.org/en/latest/guides/installing-using-pip-and-virtual-environments/#create-and-use-virtual-environments https://packaging.python.org/en/latest/key_projects/#pip https://docs.python.org/fr/dev/installing/index.html https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html https://mamba.readthedocs.io/en/latest/user_guide/micromamba.html