🐍 Les environnements Python : venv
vs conda
Cours synthétique pour BTS SIO – option SLAM
1) Pourquoi des environnements ?
Un environnement isole un projet : il possède sa propre version de Python et ses bibliothèques. Cela évite les conflits entre projets (versions différentes de Flask, Django, NumPy, etc.).
2) venv
– l’outil intégré à Python
- Inclus nativement (Python ≥ 3.3), léger et simple.
- Ne gère pas l’installation/choix de la version de Python : il réutilise celle du système.
# Créer un environnement local "env"
python3 -m venv env
# Activer (macOS/Linux)
source env/bin/activate
# Activer (Windows PowerShell)
env\Scripts\Activate.ps1
# Désactiver
deactivate
À privilégier pour les projets SLAM classiques (APIs, web, scripts).
3) conda
– environments + gestionnaire de paquets
- Vient avec (Mini)conda/Anaconda. Gère la version de Python et les paquets.
- Adapté aux stacks lourdes (IA, data science, OpenCV, PyTorch…).
# Créer un env nommé "proj39" avec Python 3.9
conda create --name proj39 python=3.9
# Activer / quitter
conda activate proj39
conda deactivate
# Installer un paquet
conda install flask
# (ou pip si besoin)
pip install flask
# Supprimer l'environnement
conda remove --name proj39 --all
4) Comparatif rapide
Critère | venv |
conda |
---|---|---|
Installation | Inclus avec Python | Nécessite (Mini)conda/Anaconda |
Gestion de Python (version) | ❌ (reprend la version système) | ✅ (ex.: python=3.10 ) |
Gestion des paquets | pip | conda (et pip si besoin) |
Poids / empreinte disque | Léger | Plus lourd |
Cas d’usage typique | Projets web / SLAM | IA / Data science / libs natives |
5) Bonnes pratiques (examen 👇)
- Un environnement par projet pour éviter les conflits.
- Exporter les dépendances :
# venv / pip pip freeze > requirements.txt pip install -r requirements.txt # conda conda env export -n monenv > environment.yml conda env create -f environment.yml -n monenv2
- Ne jamais versionner l’environnement : ajouter au
.gitignore
:# venv env/ venv/ # conda *.conda *.lock .conda/
Ce contenu est réservé aux membres du site. Si vous êtes un utilisateur existant, veuillez vous connecter. Les nouveaux utilisateurs peuvent s'inscrire ci-dessous.