Si vous gérez votre environnement de développement Python avec conda, je vous recommande de lire d'abord l'article ci-dessous.

Le texte ci-dessous résume brièvement ce contenu et constitue un guide pratique principalement axé sur la création, la suppression, la duplication et le transfert d'environnements conda utilisés en pratique.


1. Résumé en une ligne : Anaconda vs Miniconda



En résumé, on peut dire ceci :

  • Anaconda :
    → Une distribution tout-en-un qui installe de nombreux packages souvent utilisés en science des données/apprentissage automatique.

  • Miniconda :
    → Fournit uniquement des fonctions de gestion d'environnements/packages conda,
    seule l'installation des packages nécessaires est laissée au choix du développeur dans une distribution minimale.

Personnellement, je préfère “commencer léger et ajouter des packages uniquement quand c'est nécessaire”, donc,
je recommande d'installer Miniconda et de construire l'environnement dessus.

  • Moins d'espace disque utilisé

  • Moins de tracas lors des mises à jour

  • Installer uniquement ce qui est nécessaire pour chaque projet, ce qui permet de garder l'environnement moins encombré.


2. Concept d'environnement conda à grande vitesse

Un “environnement” conda, c'est simplement un ensemble de Python/packages séparé par projet.

  • env A: Python 3.10 + Django 4 + versions de bibliothèques spécifiques

  • env B: Python 3.11 + FastAPI + ensembles de bibliothèques complètement différents

Le principe est de isoler les différentes versions afin qu'elles ne s'interfèrent pas.

Les commandes de base fréquemment utilisées concernant les environnements sont les suivantes :

# Afficher la liste des environnements conda installés en cours
conda env list

# Ou bien
conda info --envs

3. Créer un environnement conda



3.1 Création de l'environnement le plus basique

conda create -n myenv python=3.12
  • -n myenv : définir le nom de l'environnement comme myenv

  • python=3.12 : utiliser la version Python 3.12

Une fois l'environnement créé :

conda activate myenv   # Activer l'environnement
conda deactivate       # Désactiver l'environnement

3.2 Créer tout en installant des packages fréquemment utilisés

conda create -n myenv python=3.12 numpy pandas matplotlib

Un nouvel environnement sera créé en installant ces packages à partir du canal de base de Miniconda déjà installé.

Ensuite :

conda activate myenv
conda install scikit-learn
# ou
pip install requests

vous pouvez ajouter des packages au fur et à mesure des besoins.


4. Supprimer un environnement conda

Il est conseillé de supprimer les environnements que vous n'utilisez plus.
(Les environnements conda peuvent prendre pas mal d'espace disque.)

# Supprimer l’environnement myenv
conda env remove -n myenv

Vérifiez après la suppression :

conda env list

Si myenv a disparu de la liste, c'est normal.


5. Cloner un environnement conda (clone)

Il est utile de créer
“un autre environnement avec un nom différent, mais avec une configuration similaire” lorsque vous avez expérimenté avec un environnement en installant divers packages.

# Créer un environnement cloné nommé new-env basé sur existing-env
conda create -n new-env --clone existing-env
  • Étant donné qu'il conserve même les versions des packages,

  • c'est un modèle souvent utilisé lorsque vous voulez garder l'environnement existant tout en expérimentant avec un nouveau.

Après le clonage :

conda activate new-env

il suffit de vérifier si tout fonctionne bien.


6. Transférer un environnement conda (export / import)

Lorsqu'il s'agit de transférer un environnement vers un autre PC ou serveur,
la méthode la plus courante consiste à exporter l'environnement dans un fichier (import/export), puis à créer un nouvel environnement basé sur ce fichier.

6.1 Exporter un environnement – Créer un fichier YAML

# Exporter l'environnement myenv vers le fichier env.yml
conda env export -n myenv > env.yml

Dans ce fichier env.yml, vous trouverez :

  • le nom de l'environnement

  • les informations sur le canal utilisé

  • les packages installés et leurs versions

Cela y est enregistré.

Si vous souhaitez uniquement exporter une liste minimale basée sur l'historique

Au lieu d'une liste complète des dépendances, si vous souhaitez
“n'enregistrer que les packages que j'ai installés moi-même” :

conda env export -n myenv --from-history > env-min.yml

Une fois créé comme cela, lorsque vous create depuis un autre environnement,
les dépendances nécessaires seront automatiquement résolues par conda.

6.2 Créer un environnement sur un autre endroit (ou dans la même machine)

Sur un autre PC, un serveur ou à un autre endroit sur la même machine :

conda env create -f env.yml

cela créera un environnement avec le nom et les versions des packages définis dans env.yml.

  • Si le fichier env.yml contient name: myenv, alors il sera créé avec ce nom.

  • Si vous souhaitez changer le nom, modifiez simplement la section name: du fichier env.yml avant de l'exécuter.

Par exemple, si vous changez name: myenv dans env.yml en name: myenv-dev, puis :

conda env create -f env.yml
conda activate myenv-dev

vous pourrez obtenir la même configuration avec un nom différent.


7. Résumé des modèles conda souvent utilisés

Lors de la création d'environnement basé sur Miniconda, je vais résumer les modèles utiles souvent utilisés.

  1. Un environnement pour chaque projet

    • Nommer l’environnement en fonction du projet comme proj-a-env, proj-b-env

    • Facilite le contrôle de versions sans conflits.

  2. Agrandir l'environnement uniquement au besoin après une installation minimale

    • Initialement, installer juste python et quelques packages de base

    • Étendre avec conda install ou pip install au fur et à mesure des besoins
      → Cela correspond bien à la philosophie minimaliste de Miniconda.

  3. Exporter régulièrement les environnements importants

    • Au moment de la version ou avant la distribution :

      bash conda env export -n proj-a-env --from-history > proj-a-env.yml

    • Si ce fichier est enregistré dans le dépôt,
      les collègues peuvent facilement reproduire le même environnement.

  4. Faire une sauvegarde avec clone avant des changements majeurs

    • Avant de procéder à de grandes mises à jour de packages ou un changement de version Python :

      bash conda create -n proj-a-backup --clone proj-a-env

    • En cas de problème, vous pouvez rapidement revenir à l'environnement de sauvegarde.


image d'environnement conda python

Conclusion : Commencer léger et étendre au besoin

En résumé, les choix sont simples.

  • Anaconda consiste à installer tous les packages “dont on pourrait avoir besoin” d'un coup.

  • Miniconda consiste à “installer uniquement ce qui est vraiment nécessaire au fur et à mesure”.

Dans des situations où chaque projet exige une version Python, une combinaison de packages diverses,
la combinaison Miniconda + un environnement conda bien géré est nettement plus flexible.

Pour les environnements :

  • Créer (conda create)

  • Activer (conda activate)

  • Supprimer (conda env remove)

  • Cloner (conda create --clone)

  • Transférer (conda env export / conda env create)

Une fois que vous êtes à l'aise avec cela, vous serez beaucoup plus libre de ne pas vous soucier de
“Qu'est-ce que je dois supprimer et réinstaller maintenant ?” chaque fois que vous démarrez un nouveau projet.

Lorsque vous commencerez un nouveau projet à l'avenir :

  1. Créez un nouvel environnement basé sur Miniconda

  2. Installez uniquement les packages vraiment nécessaires.

  3. Si la configuration vous convient, exportez-la dans un env.yml et,
    vous pourrez la réutiliser en l’ajustant légèrement pour votre prochain projet.

Une fois que ce modèle est intégré, la gestion des environnements conda ne sera plus une corvée mais plutôt une habitude rassurante qui garde le projet bien organisé.