Wenn du deine Python-Entwicklungsumgebung mit conda verwaltest, empfehle ich dir, den folgenden Artikel einmal zu lesen.

Der folgende Artikel wiederholt diese Punkte kurz und bietet einen praktischen Leitfaden zur Erstellung, Löschung, Klonung und Migration von conda-Umgebungen.


1. Anaconda vs Miniconda in Kürze



Zusammengefasst sieht es wie folgt aus:

  • Anaconda:
    → Eine komplett ausgestattete Distribution, die häufig verwendete Pakete für Datenwissenschaft/Machine Learning auf einmal installiert.

  • Miniconda:
    → Bietet nur die Verwaltungsfunktionen für conda-Umgebungen/Pakete und,
    stellt eine minimalistische Distribution bereit, bei der der Entwickler die benötigten Pakete selbst auswählt und installiert.

Ich bevorzuge den Stil „leicht anfangen und nur bei Bedarf Pakete hinzufügen“,
deshalb empfehle ich, im Normalfall Miniconda zu installieren und darauf die Umgebung aufzubauen.

  • Weniger Speicherplatzverbrauch

  • Weniger Aufwand beim Update

  • Nur das Notwendige projektweise installieren, was den Umgebungschaos reduziert.


2. Kurze Überblick über das Konzept von conda-Umgebungen

Die „Umgebung“ in conda ist einfach ausgedrückt ein von Projekten getrenntes Set aus Python/Paketen.

  • env A: Python 3.10 + Django 4 + bestimmte Bibliotheksversion

  • env B: Python 3.11 + FastAPI + ganz anderes Set an Bibliotheken

Der Schlüssel ist, verschiedene Versionen voneinander zu isolieren, damit sie sich nicht beeinflussen.

Die häufigsten grundlegenden Befehle in Bezug auf Umgebungen sind:

# Liste der derzeit installierten conda-Umgebungen anzeigen
conda env list

# oder
conda info --envs

3. Erstellen einer conda-Umgebung



3.1 Erstellen der grundlegendsten Umgebung

conda create -n myenv python=3.12
  • -n myenv : Benennt die Umgebung myenv

  • python=3.12 : Verwendet Python Version 3.12

Nach dem Erstellen der Umgebung:

conda activate myenv   # Umgebung aktivieren
conda deactivate       # Umgebung deaktivieren

3.2 Erstellen mit häufig verwendeten Paketen

conda create -n myenv python=3.12 numpy pandas matplotlib

Eine neue Umgebung wird erstellt, die diese Pakete aus dem Standardkanal von Miniconda installiert.

Danach kannst du:

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

nach Bedarf Pakete hinzufügen.


4. Löschen einer conda-Umgebung

Es ist ratsam, Umgebungen, die nicht mehr verwendet werden, zu löschen.
(Conda-Umgebungen nehmen relativ viel Speicherplatz ein.)

# myenv Umgebung löschen
conda env remove -n myenv

Überprüfen nach der Löschung:

conda env list

Wenn myenv nicht mehr in der Liste erscheint, ist es erfolgreich gelöscht.


5. Klonen einer conda-Umgebung

Wenn du eine Umgebung, die du für Experimente verwendet hast,
in eine „ähnliche Umgebung mit einem anderen Namen“ klonen möchtest, ist dies nützlich.

# Erstelle eine Klon-Umgebung namens new-env basierend auf existing-env
conda create -n new-env --clone existing-env
  • Da Paketversionen ebenfalls übernommen werden,

  • wird dies häufig verwendet, wenn du „die bestehende Umgebung behalten und neue Experimente durchführen möchtest“.

Nach dem Klonen:

conda activate new-env

kannst du überprüfen, ob alles gut funktioniert.


6. Migrieren einer conda-Umgebung (export / import)

Wenn du die Umgebung auf einen anderen PC oder Server übertragen möchtest,
ist es am gebräuchlichsten, die Umgebung als Datei zu exportieren und dann basierend auf dieser Datei eine neue Umgebung zu erstellen.

6.1 Umgebung exportieren – YAML-Datei erstellen

# Exportiere die myenv Umgebung als env.yml Datei
conda env export -n myenv > env.yml

Diese env.yml Datei enthält:

  • Den Umgebungsnamen

  • Informationen über verwendete Kanäle

  • Installierte Pakete und deren Versionen

Diese Informationen sind aufgezeichnet.

Wenn du nur eine minimale Liste basierend auf der Historie exportieren möchtest

Wenn du nicht die gesamte Liste mit Abhängigkeiten exportieren möchtest,
sondern nur „die Pakete, die ich selbst installiert habe“, kannst du Folgendes tun:

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

So wird sichergestellt, dass bei der Erstellung in einer anderen Umgebung
conda die nötigen Abhängigkeiten selbst auflöst.

6.2 Erstellen der Umgebung auf einem anderen Ort (oder auf demselben Rechner)

An einem anderen PC, Server oder an einem neuen Ort auf demselben Rechner kannst du:

conda env create -f env.yml

Durch diesen Befehl wird eine Umgebung mit dem in env.yml definierten Namen und den Paketversionen erstellt.

  • Wenn env.yml den Eintrag name: myenv enthält, wird die Umgebung mit diesem Namen erstellt.

  • Wenn du den Namen ändern möchtest, bearbeite den entsprechenden name: Eintrag in der env.yml Datei und führe den Befehl aus.

Beispiel: Wenn du env.yml von name: myenv auf name: myenv-dev änderst,
und dann:

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

wirst du die gleiche Konfiguration unter einem anderen Namen erhalten.


7. Nützliche Muster für conda

Wenn du Umgebungen basierend auf Miniconda konfigurierst, hier eine Übersicht über nützliche Muster.

  1. Eine Umgebung pro Projekt

    • Benenne Umgebungen nach Projektnamen wie proj-a-env, proj-b-env.

    • Dies erleichtert das Versionsmanagement ohne Konflikte.

  2. Umgebung minimal installieren und bei Bedarf erweitern

    • Zu Beginn nur python und ein paar grundlegende Pakete installieren.

    • Bei Bedarf während der Entwicklung mit conda install oder pip install erweitern
      → Dies entspricht gut der minimalistischen Philosophie von Miniconda.

  3. Wichtige Umgebungen regelmäßig exportieren

    • Zu Release-Zeiten oder vor der Bereitstellung:

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

    • Wenn diese Datei im Repository gespeichert wird,
      können Teamkollegen die gleiche Umgebung einfach reproduzieren.

  4. Vor größeren Änderungen ein Backup klonen

    • Vor größeren Paketupgrades oder Python-Versionänderungen:

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

    • Wenn Probleme auftreten, kannst du schnell zur Backup-Umgebung zurückwechseln.


python conda environment image

Fazit: Leicht anfangen und bei Bedarf erweitern

Zusammenfassend sind die Optionen einfach.

  • Anaconda bedeutet, alle „möglichen benötigten Pakete“ auf einmal zu installieren.

  • Miniconda bedeutet, nur die „wirklich notwendigen Pakete“ nach Bedarf zu installieren.

In der heutigen Zeit, wo jedes Projekt unterschiedliche Anforderungen an Python-Versionen und Paketkombinationen hat,
ist die Kombination aus Miniconda + gut verwalteten conda-Umgebungen viel flexibler.

Für die Umgebung:

  • erstelle (conda create)

  • aktiviere (conda activate)

  • lösche (conda env remove)

  • klone (conda create --clone)

  • übertrage (conda env export / conda env create)

Wenn du nur diese Grundlagen beherrschst, wirst du bei neuen Projekten weniger an folgende Fragen denken müssen:
„Was soll ich heute löschen und was wieder installieren?“

Wenn du ein neues Projekt startest, solltest du:

  1. Eine neue Umgebung auf Basis von Miniconda erstellen

  2. Nur die wirklich notwendigen Pakete darin installieren.

  3. Wenn dir die Umgebung gefällt, exportiere sie als env.yml,
    und bei deinem nächsten Projekt kannst du diese leicht modifizieren und wiederverwenden.

Wenn du dieses Muster einmal verinnerlicht hast, wird die Verwaltung von conda-Umgebungen zu einer „starken Gewohnheit“, die „deine Projekte sauber hält“ und nicht mehr lästig sein.