pip vs conda – Was ist der Unterschied?

Bei Python muss das Rad nicht jedes Mal neu erfunden werden: Zahlreiche vorprogrammierte Funktionen stehen zur Verfügung, die als praktisches Paket heruntergeladen, installiert und für die eigenen Projekte verwendet werden können.

Mit einem Paketmanager gestaltet sich die Verwaltung solcher Pakete gleich viel einfacher. Zu den am meisten verwendeten Paketmanagern zählen pip und conda.

Doch was genau ist eigentlich ein Paketmanager? Welche Vor- und Nachteile haben pip und conda? Und was sind überhaupt die Unterschiede? In diesem Blogbeitrag schauen wir uns die beiden Tools mal etwas näher an.

Das sind die Unterschiede zwischen pip und conda

Bei pip handelt es sich um den offiziellen Paketmanager der Python Software Foundation. Er bezieht seine Pakete aus dem offiziellen Software Repository PyPI.
Dagegen handelt es sich bei conda um einen sprachunabhängigen und plattformübergreifenden Paketmanager, der unter anderem Python Pakete verwaltet.

Mit der Standard Installation von Python erhältst du auch pip direkt mit installiert.
Bei Anaconda wird conda standardmäßig mit ausgeliefert.

Bei pip stehen im Vergleich zu conda deutlich mehr Pakete zur Verfügung. Dafür ermöglicht conda auch ohne zusätzliche Tools unterschiedliche Umgebungen mit verschiedenen Paketen zu verwalten. Außerdem können die Pakete unkomplizierter installiert werden, da im Gegensatz zu pip bestehende Abhängigkeiten direkt berücksichtigt werden.

Die Pakete werden für conda erst angepasst, weshalb über pip aktuellere Paketversionen bezogen werden können.

Was ist ein Paketmanager?

Python unterstützt wie andere Programmiersprachen Frameworks und Bibliotheken von Drittanbietern, die verschiedene Funktionen sowie Elemente bereits enthalten und von dir für deine Programmierung genutzt werden können. Mit solchen Vorprogrammierungen sparst du zum einen Zeit, zum anderen musst du das Rad nicht bei jedem Projekt neu erfinden.

Der Python Package Index (PyPI) ist eine Art zentraler Paketpool und stellt mittlerweile über 250.000 verschiedene Pakete mit hilfreichen Vorprogrammierungen zur Verfügung. Das manuelle Herunterladen, Installieren sowie Verwalten der Pakete kann jedoch sehr zeitaufwändig und frustrierend sein.

Paketmanager übernehmen diese Aufgabe und kümmern sich somit um das Installieren, Aktualisieren und Entfernen von Paketen – eine überaus praktische Automatisierung. Ein einzelnes Paket besteht üblicherweise aus Programmdateien, Daten-Files, Konfigurationsdateien und Metadaten. Die Metadaten beschreiben in erster Linie das Paket selbst und was enthalten ist.

Hier kann ein kleiner Vergleich mit einem bekannten, schwedischen Möbelhaus gezogen werden: Du möchtest ein Zimmer mit ganz bestimmten Möbeln ausstatten, um den Raum nach deinen Vorstellungen zu nutzen. Nachdem du dich für die Einrichtungsgegenstände entschieden hast, rennst du normalerweise durch die typische Lagerhalle des Möbelhauses, suchst dir die einzelnen Gegenstände und Pakete zusammen, hievst diese auf den Transportwagen und gehst schließlich zur Kasse. Das kann schon mal etwas länger dauern und ist nicht unbedingt komfortabel. Wäre es nicht praktisch, wenn jemand für dich das Zusammensuchen übernehmen könnte? Noch besser: Wäre es nicht ideal, wenn du dich ohne Möbelhausbesuch direkt in ein fertig eingerichtetes Zimmer setzen könntest?

So in der Art funktioniert ein Paketmanager: Du kannst mit ihm eine praktische Sammlung von vorprogrammierten Funktionen und Software (= Zusammenstellung von Möbeln) herunterladen und schließlich installieren (= komplette und automatische Einrichtung des Zimmers). Schon befindet sich in der Programmierumgebung alles, was du für dein Projekt benötigst – mehr Komfort ist kaum möglich.

Was ist pip?

Bei pip handelt es sich um ein Paketverwaltungsprogramm für Python-Pakete, dass sinngemäß für “PIP installiert Pakete” oder “Bevorzugtes Installationsprogramm” steht. Mit dem Befehlszeilenprogramm kannst du PyPI-Pakete mit unkomplizierten und einfachen Befehlen installieren und deinstallieren. 

Der Paketmanager ist 

  • bei Python 2 ab Version 2.7.9 und
  • bei Python 3 ab Version 3.4 

im Python-Installer enthalten und damit ein Standard-Tool. Selbstverständlich kann pip aber auch nachinstalliert werden.

Welche Funktionen hat pip?

Die pip-Befehle sind denkbar einfach aufgebaut und daher unkompliziert zu verwenden. 

Du möchtest die neuste Version von pip benutzen und eventuelle Sicherheitslücken schließen? Kein Problem, die Update-Funktion kann mit einem kleinen Befehl aufgerufen werden. Unter Windows lautet dieser: 

python -m pip install -U pip 

Die Python Pakete findest du über die Seite pypi.org (Python Package Index). Da die meisten Pakete/Projekte mit einem Git Repository arbeiten, stehen dort meistens auch die erforderlichen Installationsbefehle.

Um ein Paket zu installieren, reicht bereits folgende Eingabe aus:

pip install <Paketname>

Du möchtest das Paket aktualisieren? Auch dieser Befehl ist denkbar einfach:

pip install <Paketname> --upgrade

Wenn du mehr zu dem installierten Paket erfahren möchtest, ist der folgende Befehl die Lösung:

pip show <Paketname>

Mit dem folgenden Befehl kannst du das Paket wieder deinstallieren:

pip uninstall <Paketname>

Folgende Eingabe zeigt dir die installierten Python-Module an:

pip list

Was ist conda?

Bei conda handelt es sich um einen plattformübergreifenden Paketmanager. Er wird standardmäßig mit der Python-Distribution Anaconda geliefert. Conda ist in der Programmiersprache Python geschrieben, kann aber Projekte mit unterschiedlichen Programmiersprachen verwalten – somit auch mehrsprachige Projekte.

Das sprachunabhängige conda wird häufig für Data Science- und Machine Learning-Anwendungen verwendet und nutzt einen eigenen Index, um kompatible Pakete zu hosten.

Da es sich bei Conda-Paketen um Binärdateien handelt, wird für die Installation kein Compiler benötigt. 

Mit Conda kannst du nicht nur Paketabhängigkeiten verwalten, sondern auch kompatible Python-Distributionen installieren und virtuelle Umgebungen für deine Anwendungen verwalten.

Welche Funktionen hat conda?

Auch bei conda können die Funktionen mit einfachen Befehlen genutzt werden. Hierzu zählen:

Aufgabe Conda-Paket- und Umgebungsmanagerbefehl
Paketmanager aktualisierenconda update conda
Paket installierenconda install <Paketname>
Paket aktualisierenconda update <Paketname>
Paket deinstallierenconda remove <Paketname>
Installierte Pakete auflistenconda list

Für die nachfolgenden Befehle gibt es bei pip kein passendes Gegenstück:

Aufgabe Conda-Paket- und Umgebungsmanagerbefehl
Umgebung erstellenconda create –name <Umgebungsname>
Umgebung aktivierenconda activate <Umgebungsname>
Umgebung deinstallierenconda deactivate <Umgebungsname>
Python installierenconda install python=x.x

Was sind die Unterschiede?

Grundsätzlich sind pip und conda nicht als direkte Konkurrenten zu betrachten, da sie unterschiedlichen Zwecken dienen, sich an unterschiedliche Zielgruppen richten und nur bei kleinen Aufgabenteilmengen direkt konkurrieren. Beide Paketmanager kümmern sich darum, dass Bibliotheken in den richtigen Versionen installiert werden.

Einer der größten Unterschiede ist, dass pip ausschließlich Python-Pakete installiert, während conda auch Python-unabhängige Pakete verwalten kann. Somit enthalten die Pakete auch Funktionen und Software, die mit einer anderen Sprache entwickelt wurden.

Vor der Verwendung von pip muss zunächst Standard Python installiert werden. conda hingegen setzt keine Python-Installation voraus, sondern kann sogar für den Download und die Installation des Python-Interpreters genutzt werden.

Ein weiterer wichtiger Unterschied zwischen den beiden Tools besteht darin, dass mit conda ohne Zusatzsoftware isolierte Umgebungen erstellt werden können. Diese Umgebungen können verschiedene Versionen von Python und installierten Paketen enthalten. Pip hat keine integrierte Unterstützung für solche Umgebungen, sondern benötigt hierfür separate Tools.

Wenn du mit conda eine virtuelle Umgebung erzeugst, kannst du eine bestimmte Python Version angeben. Sofern diese Version auf deinem PC noch nicht installiert ist, kümmert sich conda selbständig um den Download und die Installation. Diese Funktionalität wird von pip nicht angeboten.

Während die Python-Standardinstallation inklusive pip grundsätzlich kostenfrei ist, sind bei Anaconda, einschließlich conda, auch kommerzielle Editionen verfügbar. Die kostenlose Individual Edition von Anaconda ist für einen Gebrauch im Privatbereich, in der Ausbildung sowie in der Forschung vorgesehen.

Teilweise setzt die Installation von Paketen andere Tools voraus, die zuvor installiert und konfiguriert werden müssen. Pip bietet hierfür keine Automatisierungen an. Anaconda stellt angepasste, eigene Versionen der Pakete zur Verfügung, die alle Abhängigkeiten bereits enthalten. Genau diese abgewandelten Pakete werden schließlich von conda installiert.

Die Anpassung der Pakete hat allerdings auch eine Kehrseite: Sie benötigt Zeit, weshalb die conda-Pakete teilweise 1 bis 2 Versionen hinter der pip-Version liegen. Zudem sind teilweise mehr Bibliotheken enthalten als zwingend erforderlich.

Im Vergleich zu pip verwendet conda einen Satisfiability-Solver (SAT), somit einen Abhängigkeitsprüfer, der überprüft, ob alle Anforderungen der in einer Umgebung installierten Pakete erfüllt werden.

Im Regelfall funktionieren die mit conda installierten Pakete unter Windows störungsfreier.

Die Unterschiede lassen sich wie folgt zusammenfassen:

Condapip
verwaltet:BinärdateienWheels oder Quellcode
PaketquellenAnaconda- Repository und -CloudPyPI
Paketinstallation und -verwaltungHaken - insel &amp; land immobilienHaken - insel &amp; land immobilien
Python installierenHaken - insel &amp; land immobilien
Python-Version wechselnHaken - insel &amp; land immobilien
Native Unterstützung von isolierten UmgebungenHaken - insel &amp; land immobilien
Verwaltung von Nicht-Python-InhaltenHaken - insel &amp; land immobilien
Installiert erforderliche AbhängigkeitenHaken - insel &amp; land immobilien
Immer die aktuellste Paketversion verfügbarHaken - insel &amp; land immobilien
Pakete enthalten nur benötigte BibliothekenHaken - insel &amp; land immobilien

Wann sollte ich pip und wann conda benutzen?

pip bietet mit Abstand den größten Paketpool und ermöglicht damit für nahezu jede Aufgabenstellung ein passendes Paket zu finden. Aus diesem Grunde stellt dieser Paketmanager im Regelfall auch die erste Anlaufstelle dar. 

conda richtet sich vorrangig an Entwickler, die in den Bereichen Data Science, maschinelles Lernen und KI Anwendungen programmieren möchten. Durch die Verwendung von Python-fremden Bestandteilen werden teilweise erweiterte Features zur Verfügung gestellt. Der flexible Wechsel zwischen verschiedenen Projekten mit unterschiedlichen Bibliotheksversionen wird allerdings nicht unbedingt von jedem Nutzer benötigt.

Wenn du Python-Pakete in einer vorhandenen Python-Systeminstallation verwalten möchten, kann dir conda kaum helfen: Von Natur aus kann es nur Pakete in conda-Umgebungen verwalten.

Wenn du hauptsächlich mit Python-Paketen arbeiten möchtest, die auf externen und anderssprachigen Abhängigkeiten basieren, ist pip nicht die ideale Lösung – denn pip verwaltet ausschließlich Python-Pakete.

Welchen Python-Paketmanager solltest du nun verwenden? Es kommt wirklich auf deinen Workflow und deine Vorlieben an.

Die meisten Python-Entwickler kommen mit dem standardmäßig enthaltenen pip aus und sehen daher von einer Nutzung von conda ab. Andere Programmierer verwenden sowohl pip als auch conda für die Installation und Verwaltung von Paketen.


Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Scroll to Top