Gestion des environnements Conda : le guide complet pour les data scientists
Maîtrisez les environnements conda, la gestion des packages, les canaux et les workflows reproductibles. Des commandes de base aux astuces avancées pour les projets Python et R.
Conda est le gestionnaire de packages et d'environnements qui propulse la data science moderne. Que vous jongiez avec plusieurs versions de Python, installiez des bibliothèques accélérées par GPU ou partagiez des environnements reproductibles avec votre équipe, conda gère tout cela — sans les cauchemars de dépendances qui hantent les workflows basés uniquement sur pip.
Pourquoi conda plutôt que pip + venv ?
Pip installe des packages Python. Conda installe n'importe quoi — Python, R, des bibliothèques C, des toolkits CUDA et des dépendances système. C'est important car les bibliothèques de data science comme NumPy, SciPy et PyTorch dépendent de code C/Fortran compilé que pip ne peut pas toujours résoudre correctement.
| Fonctionnalité | pip + venv | conda |
|---|---|---|
| Packages Python | ✅ | ✅ |
| Dépendances non-Python (C, CUDA) | ❌ | ✅ |
| Gestion des versions Python | ❌ (nécessite pyenv) | ✅ |
| Isolation d'environnement | ✅ | ✅ |
| Résolveur de dépendances | Basique | Solveur SAT |
| Binaires multiplateforme | Wheels uniquement | Support complet |
Pour commencer : Miniconda vs Anaconda
Miniconda vous offre conda + Python en ~80 Mo. Vous n'installez que ce dont vous avez besoin. Anaconda livre plus de 250 packages pré-installés (~3 Go) — pratique, mais trop lourd pour la plupart des workflows.
Pour la majorité des développeurs, Miniconda est le meilleur choix :
# Installer Miniconda (Linux/macOS)
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
# Vérifier l'installation
conda --version
L'essentiel de la gestion des environnements
Créer des environnements
Créez toujours un environnement dédié pour chaque projet. N'installez jamais de packages dans base :
# Créer avec une version Python spécifique
conda create -n myproject python=3.11
# Créer avec des packages pré-installés
conda create -n ml-project python=3.11 numpy pandas scikit-learn
# Créer depuis un fichier d'environnement
conda env create -f environment.yml
Activer et basculer entre les environnements
conda activate myproject # Passer à l'environnement
conda deactivate # Retourner à base
conda env list # Voir tous les environnements
Installer des packages
# Depuis le canal par défaut
conda install numpy pandas matplotlib
# Depuis conda-forge (packages communautaires)
conda install -c conda-forge polars duckdb
# Version spécifique
conda install pytorch=2.2 -c pytorch
# Installer des packages pip quand conda ne les propose pas
pip install some-niche-package
Conseil de pro : Essayez toujours conda install en premier. Revenez à pip install uniquement lorsqu'un package n'est disponible sur aucun canal conda. Mélanger les deux peut provoquer des conflits de dépendances si cela n'est pas géré avec soin.
Supprimer et nettoyer
# Supprimer un package
conda remove scipy
# Supprimer un environnement entier
conda env remove -n old-project
# Nettoyer les packages en cache (libérer de l'espace disque)
conda clean --all
Canaux et priorités
Les canaux sont les sources depuis lesquelles conda télécharge les packages. L'ordre est important :
# Ajouter conda-forge comme priorité la plus haute
conda config --add channels conda-forge
conda config --set channel_priority strict
# Afficher les canaux actuels
conda config --show channels
Configuration recommandée pour la data science :
channels:
- conda-forge
- defaults
Définir channel_priority: strict signifie que conda privilégiera toujours conda-forge, évitant ainsi les problèmes de dépendances liés aux canaux mixtes.
Environnements reproductibles avec environment.yml
Le fichier environment.yml est le moyen de partager des environnements avec vos coéquipiers :
name: ml-pipeline
channels:
- conda-forge
- pytorch
dependencies:
- python=3.11
- numpy=1.26
- pandas=2.2
- scikit-learn=1.4
- pytorch=2.2
- jupyter
- pip:
- wandb
- some-pip-only-package
Exporter et recréer
# Exporter l'environnement actuel (multiplateforme)
conda env export --from-history > environment.yml
# Exporter avec les versions exactes (même OS uniquement)
conda env export > environment-lock.yml
# Recréer sur une autre machine
conda env create -f environment.yml
L'option --from-history exporte uniquement les packages que vous avez explicitement installés, rendant le fichier portable entre les systèmes d'exploitation.
Astuces avancées pour les utilisateurs expérimentés
Accélérer conda avec libmamba
Le solveur conda par défaut peut être lent. Passez à libmamba pour des résolutions 10 à 50 fois plus rapides :
conda install -n base conda-libmamba-solver
conda config --set solver libmamba
Depuis conda 23.10+, libmamba est le solveur par défaut — mais vérifiez si vous utilisez une version plus ancienne.
Empiler les environnements
Vous pouvez empiler des environnements pour partager des dépendances de base :
conda activate base-ml
conda activate --stack experiment-42
Cela vous donne accès aux packages des deux environnements sans dupliquer les installations volumineuses.
Utiliser conda avec Docker
FROM continuumio/miniconda3:latest
COPY environment.yml .
RUN conda env create -f environment.yml && conda clean -afy
SHELL ["conda", "run", "-n", "myenv", "/bin/bash", "-c"]
CMD ["python", "app.py"]
Utiliser conda en CI/CD
# Exemple GitHub Actions
- uses: conda-incubator/setup-miniconda@v3
with:
environment-file: environment.yml
python-version: "3.11"
activate-environment: myproject
Pièges courants et solutions
1. La « résolution de l'environnement » prend une éternité
Passez au solveur libmamba (voir ci-dessus) ou épinglez moins de versions de packages.
2. Mélanger conda et pip casse tout
Installez d'abord tous les packages conda, puis les packages pip. Si vous devez ajouter des packages conda plus tard, recréez l'environnement depuis environment.yml.
3. L'environnement est trop volumineux
Utilisez conda clean --all régulièrement. Pensez à utiliser Miniconda plutôt qu'Anaconda, et n'installez que ce dont vous avez besoin.
4. Erreurs « Package not found »
Recherchez le package : conda search package-name. Essayez conda-forge : conda install -c conda-forge package-name. S'il s'agit d'un package Python uniquement, utilisez pip en solution de repli.
Référence rapide
Besoin de retrouver rapidement une commande conda ? Utilisez notre Conda Cheat Sheet — il regroupe plus de 90 commandes organisées par catégorie avec copie en un clic, recherche et filtrage.
En résumé
Les environnements conda sont indispensables pour une data science reproductible. Les bonnes pratiques essentielles sont :
- Un environnement par projet — ne polluez jamais
base - Utilisez environment.yml — versionnez vos dépendances
- Privilégiez conda-forge — le plus grand canal communautaire
- Exportez avec
--from-history— portable entre les plateformes - Utilisez le solveur libmamba — des installations nettement plus rapides
Maîtrisez ces pratiques et vous n'entendrez plus jamais « pourtant ça marche sur ma machine ».