Developer Tools

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.

9 min de lecture

Espace de travail data science avec du code à l'écran

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 :

  1. Un environnement par projet — ne polluez jamais base
  2. Utilisez environment.yml — versionnez vos dépendances
  3. Privilégiez conda-forge — le plus grand canal communautaire
  4. Exportez avec --from-history — portable entre les plateformes
  5. 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 ».