Conda-Umgebungsverwaltung: Der vollständige Leitfaden für Data Scientists
Meistere conda-Umgebungen, Paketverwaltung, Channels und reproduzierbare Workflows. Von grundlegenden Befehlen bis hin zu fortgeschrittenen Tipps für Python- und R-Projekte.
Conda ist der Paket- und Umgebungsmanager, der moderne Data Science antreibt. Ob du Python-Versionen jonglierst, GPU-beschleunigte Bibliotheken installierst oder reproduzierbare Umgebungen mit deinem Team teilst – conda erledigt das alles, ohne die Abhängigkeitsprobleme, die reine pip-Workflows plagen.
Warum conda statt pip + venv?
Pip installiert Python-Pakete. Conda installiert alles – Python, R, C-Bibliotheken, CUDA-Toolkits und Abhängigkeiten auf Systemebene. Das ist wichtig, weil Data-Science-Bibliotheken wie NumPy, SciPy und PyTorch auf kompilierten C/Fortran-Code angewiesen sind, den pip nicht immer korrekt auflösen kann.
| Funktion | pip + venv | conda |
|---|---|---|
| Python-Pakete | ✅ | ✅ |
| Nicht-Python-Abhängigkeiten (C, CUDA) | ❌ | ✅ |
| Python-Versionsverwaltung | ❌ (benötigt pyenv) | ✅ |
| Umgebungsisolierung | ✅ | ✅ |
| Abhängigkeitslöser | Einfach | SAT-Solver |
| Plattformübergreifende Binärdateien | Nur Wheels | Vollständige Unterstützung |
Einstieg: Miniconda vs. Anaconda
Miniconda liefert conda + Python in ~80 MB. Du installierst nur, was du brauchst. Anaconda enthält 250+ vorinstallierte Pakete (~3 GB) – praktisch, aber für die meisten Workflows überladen.
Für die meisten Entwickler ist Miniconda die bessere Wahl:
# Miniconda installieren (Linux/macOS)
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
# Installation überprüfen
conda --version
Grundlagen der Umgebungsverwaltung
Umgebungen erstellen
Erstelle immer eine dedizierte Umgebung für jedes Projekt. Installiere niemals Pakete in base:
# Mit bestimmter Python-Version erstellen
conda create -n myproject python=3.11
# Mit vorinstallierten Paketen erstellen
conda create -n ml-project python=3.11 numpy pandas scikit-learn
# Aus einer Umgebungsdatei erstellen
conda env create -f environment.yml
Aktivieren und Wechseln
conda activate myproject # Zur Umgebung wechseln
conda deactivate # Zu base zurückkehren
conda env list # Alle Umgebungen anzeigen
Pakete installieren
# Aus dem Standard-Channel
conda install numpy pandas matplotlib
# Von conda-forge (Community-Pakete)
conda install -c conda-forge polars duckdb
# Bestimmte Version
conda install pytorch=2.2 -c pytorch
# pip-Pakete installieren, wenn conda sie nicht hat
pip install some-niche-package
Profi-Tipp: Versuche immer zuerst conda install. Greife nur auf pip install zurück, wenn ein Paket auf keinem conda-Channel verfügbar ist. Das Mischen beider kann zu Abhängigkeitskonflikten führen, wenn es nicht sorgfältig verwaltet wird.
Entfernen und Aufräumen
# Ein Paket entfernen
conda remove scipy
# Eine gesamte Umgebung löschen
conda env remove -n old-project
# Gecachte Pakete bereinigen (Speicherplatz freigeben)
conda clean --all
Channels und Prioritäten
Channels sind die Quellen, aus denen conda Pakete herunterlädt. Die Reihenfolge ist entscheidend:
# conda-forge als höchste Priorität hinzufügen
conda config --add channels conda-forge
conda config --set channel_priority strict
# Aktuelle Channels anzeigen
conda config --show channels
Empfohlene Einrichtung für Data Science:
channels:
- conda-forge
- defaults
Das Setzen von channel_priority: strict bedeutet, dass conda immer conda-forge bevorzugt und Abhängigkeitsprobleme durch gemischte Channels vermieden werden.
Reproduzierbare Umgebungen mit environment.yml
Die environment.yml-Datei ermöglicht das Teilen von Umgebungen mit Teammitgliedern:
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
Exportieren und Wiederherstellen
# Aktuelle Umgebung exportieren (plattformübergreifend)
conda env export --from-history > environment.yml
# Mit exakten Versionen exportieren (nur gleiches Betriebssystem)
conda env export > environment-lock.yml
# Auf einem anderen Rechner wiederherstellen
conda env create -f environment.yml
Das Flag --from-history exportiert nur explizit installierte Pakete und macht die Datei betriebssystemübergreifend portierbar.
Fortgeschrittene Tipps für Power-User
conda mit libmamba beschleunigen
Der Standard-conda-Solver kann langsam sein. Wechsle zu libmamba für 10- bis 50-mal schnellere Auflösungen:
conda install -n base conda-libmamba-solver
conda config --set solver libmamba
Ab conda 23.10+ ist libmamba der Standard-Solver – überprüfe jedoch, ob du eine ältere Version verwendest.
Umgebungen stapeln
Du kannst Umgebungen für gemeinsame Basisabhängigkeiten stapeln:
conda activate base-ml
conda activate --stack experiment-42
So hast du Zugriff auf Pakete aus beiden Umgebungen, ohne große Installationen zu duplizieren.
conda in Docker verwenden
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"]
conda in CI/CD verwenden
# GitHub Actions Beispiel
- uses: conda-incubator/setup-miniconda@v3
with:
environment-file: environment.yml
python-version: "3.11"
activate-environment: myproject
Häufige Fallstricke und Lösungen
1. „Solving environment" dauert ewig
Wechsle zum libmamba-Solver (siehe oben) oder fixiere weniger Paketversionen.
2. Das Mischen von conda und pip verursacht Probleme
Installiere zuerst alle conda-Pakete, dann pip-Pakete. Wenn du später weitere conda-Pakete hinzufügen musst, erstelle die Umgebung aus environment.yml neu.
3. Umgebung ist zu groß
Verwende conda clean --all regelmäßig. Erwäge die Nutzung von Miniconda statt Anaconda und installiere nur, was du benötigst.
4. „Package not found"-Fehler
Suche nach dem Paket: conda search package-name. Versuche conda-forge: conda install -c conda-forge package-name. Falls es sich um ein reines Python-Paket handelt, verwende pip als Fallback.
Kurzreferenz
Benötigst du eine schnelle Nachschlagemöglichkeit für conda-Befehle? Nutze unser Conda Cheat Sheet – es enthält 90+ Befehle, nach Kategorien geordnet, mit Ein-Klick-Kopieren, Suche und Filterung.
Fazit
Conda-Umgebungen sind unverzichtbar für reproduzierbare Data Science. Die wichtigsten Praktiken sind:
- Eine Umgebung pro Projekt —
baseniemals verschmutzen - environment.yml verwenden — Abhängigkeiten versionieren
- conda-forge bevorzugen — größter Community-Channel
- Mit
--from-historyexportieren — plattformübergreifend portierbar - libmamba-Solver verwenden — deutlich schnellere Installationen
Beherrsche diese Muster und du wirst nie wieder „Bei mir funktioniert es aber" hören.