Anaconda Python erklärt

08.07.2024
Von 
Serdar Yegulalp schreibt für unsere US-Schwesterpublikation Infoworld.
Anaconda erleichtert es, Python für Data-Science-Zwecke einzusetzen. So gelingt der Einstieg in die Distribution.
Anaconda stattet Python mit jeder Menge Data-Science-"Fleisch" aus.
Anaconda stattet Python mit jeder Menge Data-Science-"Fleisch" aus.
Foto: Vadim Petrakov | shutterstock.com

Python ist zweifelsohne ein essenzieller Bestandteil der modernen Datenwissenschaft. Die Programmiersprache gibt Data Scientists und Softwareentwicklern eine ganze Reihe praktischer und performanter Tools an die Hand.

Die Tools erfordern in vielen Fällen aber auch ein gewisses Maß an Assembler-Knowhow. Zudem ist die Art und Weise, wie Python verpackt und bereitgestellt wird, nicht spezifisch auf Datenwissenschaftler zugeschnitten. Um diese Lücke zu füllen und Assembler dennoch außenvorzulassen, existieren verschiedene Projekte. Zum Beispiel Anaconda.

Was ist Anaconda Python?

Anaconda ist eine Python-Distribution - also quasi eine Neupaketierung von Python - die sich speziell an Entwickler richtet, die die Programmiersprache für Data-Science-Zwecke verwenden möchten. Dazu bietet Anaconda eine ganze Reihe datenwissenschaftlich ausgerichteter Tools und Features, die speziell die Datenverarbeitung mit Python vereinfachen.

Anaconda-Editionen im Überblick

Anaconda besteht aus zwei Hauptkomponenten - der Anaconda-Distribution und den dazugehörigen Services. Die Anaconda-Distribution lässt sich auch ohne die Dienste downloaden und nutzen - und steht in zwei unterschiedlichen Editionen zur Verfügung, nämlich:

Letztere ist eine gute Wahl für Einsteiger, denn sie ist auf die grundlegenden Funktionen beschränkt. Auf die Einzelheiten zu Miniconda kommen wir im Verlauf des Artikels noch einmal zu sprechen. Die Anaconda-Distribution ist in beiden Fällen kostenlos nutzbar.

Die Anaconda Services stehen mit unterschiedlichen Preisplänen für Einzelnutzer sowie Unternehmen (ab 75 Dollar pro Monat) zur Verfügung. Für erstgenannte ist auch eine kostenlose Version verfügbar. Zu den verfügbaren Enterprise-Features zählen beispielsweise:

  • Repository-Kontrollmaßnahmen,

  • Versionskontrolle,

  • Job Scheduling und

  • SLAs für die Uptime.

Anaconda-Python-Komponenten

Die Referenzversion von Python - Cpython - enthält einige hilfreiche Komponenten, etwa die Standardbibliothek und eine IDE. Data-Science-Tools gibt es dabei aber lediglich als Add-on. Nicht so bei Anaconda - hier ist eine hochwertige Auswahl entsprechender Tools standardmäßig mit an Bord. Anaconda enthält:

  • Python Interpreter,

  • Anaconda Navigator und

  • Conda Package Manager.

Python Interpreter

Hierbei handelt es sich nicht um den Standard-CPython-Build der Python Software Foundation, sondern um eine eigenständige Variante von Anaconda Inc., die speziell für die Python-Distribution erstellt wurde. Er soll im Vergleich (auf einigen Plattformen) sicherere Compiler Flags und bessere Performance-Optimierungen aufweisen.

Anaconda Navigator

Die auffälligste Neuerung, um die Anaconda die Arbeit mit Python ergänzt, ist eine grafische Benutzeroberfläche (GUI) - der Anaconda Navigator. Der ist keine IDE und versucht auch nicht, eine zu sein: Die meisten Python-fähigen IDEs sind in der Lage, die Anaconda Python Runtime zu registrieren und zu verwenden. Der Anaconda Navigator stellt vielmehr ein Organisationssystem für die größeren Parts der Distribution dar. Mit dem Navigator können Sie:

  • High-Level-Anwendungen wie RStudio oder Jupyterlab hinzufügen und nutzen;

  • virtuelle Umgebungen und Packages managen;

  • "Projects" einrichten (dazu später mehr), um die Arbeit in Anaconda zu verwalten;

  • auf diverse administrative Funktionen zugreifen.

Obwohl der Navigator den Komfort einer grafischen Benutzeroberfläche bietet, ersetzt er nicht die Befehlszeilenfunktionalitäten in Anaconda oder Python im Allgemeinen. Sie können Packages beispielsweise über die grafische Benutzeroberfläche verwalten, das aber auch über die Kommandozeile erledigen.

Ein Blick auf die (konfigurierbare) grafische Benutzeroberfläche von Anaconda.
Ein Blick auf die (konfigurierbare) grafische Benutzeroberfläche von Anaconda.
Foto: IDG

CPython hingegen weist keine formale GUI auf. Die Distribution wird zwar mit IDLE geliefert - einer Mini-IDE, die sich für schnelle, einmalige Aufgaben eignet. Geht es darum, Python selbst zu managen, sind Sie allerdings auf Drittanbieter angewiesen. Deswegen bieten einige IDEs GUI-Schnittstellen für CPython-Komponenten. Microsoft Visual Studio hat zum Beispiel eine grafische Benutzeroberfläche für das Pip-Paketverwaltungssystem von Python an Bord, die der GUI ähnelt, die Anaconda für seinen eigenen Paketmanager bereitstellt.

Conda Package Manager

Um Drittanbieter-Bibliotheken zu managen und zu installieren, wird Python mit dem pip Package Manager ausgeliefert. Dieser ist allerdings - trotz jahrelanger Weiterentwicklungen - eher limitiert, denn er verwaltet nur Packages für Python selbst. Weist eine Bibliothek eine Abhängigkeit zu einem externen Package auf, muss dieses manuell vom Entwickler separat installiert und gemanagt werden.

Weil damit auch die Entwickler von Anaconda zu kämpfen hatten, beschlossen sie, ihre eigene Lösung zu entwickeln: Conda. Dieser Package Manager verwaltet nicht nur Packages, sondern auch Abhängigkeiten außerhalb des Python-Ökosystems.

Python Data Science Tools sind wegen unzähliger Abhängigkeiten oft schwer zu installieren und managen. Conda will hier Abhilfe schaffen.
Python Data Science Tools sind wegen unzähliger Abhängigkeiten oft schwer zu installieren und managen. Conda will hier Abhilfe schaffen.
Foto: IDG

Haben Sie es zum Beispiel mit mehreren Packages zu tun, die auf einen Compiler wie GCC oder LLVM angewiesen sind, stellt das für Conda kein Problem dar: Die Lösung ist in der Lage, eine einzige Instanz einer bestimmten GCC-Version für alle Conda-Pakete, die es benötigen, zu installieren. Mit pip müssten Sie hingegen eine Kopie von GCC mit jedem Paket, das es verwendet, bündeln. Im Klartext: eine ineffiziente und umständliche Lösung.

Conda und pip verwenden davon abgesehen auch nicht das gleiche Paketformat, weswegen Pakete, die für pip erstellt wurden, für Conda neu erstellt werden müssen. Die gute Nachricht: Nahezu jede für das Python-Ökosystem wichtige Bibliothek ist über Conda verfügbar.

Anacondas Data-Science-Optimierungen

Die Verbesserungen, die Anaconda einführt, kommen ganz allgemein jedem Python-Nutzer zugute. Die wichtigsten Benefits hält die Distribution aber für Data-Science-Anwender bereit - die des Öfteren mit ihren Python-Umgebungen in Konflikt geraten.

Conda Environments

Python Packages kommen - selbst wenn sie mit Conda verwaltet werden - nicht immer gut miteinander "klar". Bestimmte Projekte benötigen manchmal unterschiedliche Package-Versionen. Um das Problem zu lösen, wurde zwar das Python-Feature für virtuelle Umgebungen - auch bekannt als venv - entwickelt, aber Conda geht noch einen Schritt weiter.

Conda Environments sind funktional ähnlich aufgebaut wie virtuelle Umgebungen im venv-Stil. Wenn Sie bestimmte Versionen von Bibliotheken oder auch des Python-Interpreters verwenden wollen, können Sie die in einer Conda-Umgebung unterbringen - und isoliert nutzen. venv-Umgebungen können zwar verschoben werden, enthalten aber nicht unbedingt detaillierte Informationen darüber, wie sie erstellt wurden. Wenn Sie für Ihre Arbeit eine reproduzierbare Umgebung benötigen, kann das ein Problem darstellen. Conda Environments sind hingegen auf Reproduzierbarkeit konzipiert.

Wollen Sie Kollegen ermöglichen, Ihre Conda-Umgebung zu benutzen, stellen Sie ihnen eine Kopie des entsprechenden Definitions-Files zur Verfügung. Diese beschreibt, wie man die Umgebung auf einem anderen System neu erstellt. Das funktioniert nicht uneingeschränkt plattformübergreifend: Alle Unterschiede hinsichtlich der Funktionsweise von Paketen auf verschiedenen Plattformen (etwa macOS versus Linux) müssen manuell ausgebügelt werden.

Drei Conda-Ugebungen mit jeweils eigenem Package- und Runtime-Set. Jedes Conda Environment muss separat aktualisiert werden.
Drei Conda-Ugebungen mit jeweils eigenem Package- und Runtime-Set. Jedes Conda Environment muss separat aktualisiert werden.
Foto: IDG

Anaconda Project

Ein Environment exakt zu reproduzieren, ist allgemein ein gängiges Problem - sowohl für Datenwissenschaftler als auch für Softwareentwickler. Selbst Conda-Umgebungen bieten nur eine Teillösung für dieses Problem, weil venv-Umgebungen Dinge wie Umgebungsvariablen nicht reproduzieren können.

An dieser Stelle kommt Anaconda Project ins Spiel: Das Tool verwandelt ganze Ordner mit Web-Apps, Skripten, Jupyter Notebooks und Files in eine reproduzierbare Ressource um. Sobald dieses Verzeichnis über Anaconda Project gemanagt wird, läuft es überall konsistent - insofern eine Kopie von Anaconda vorhanden ist.

Die größte Einschränkung: Anaconda Project befindet sich derzeit in der Betaphase und läuft noch nicht stabil. Solange das nicht der Fall ist, sollte es nicht für die gemeinsame Arbeit in Umgebungen verwendet werden. Bis es soweit ist, können Conda Environments zumindest eine verlässliche Teilmenge der gleichen Funktionalität bieten.

Apps in Anaconda Python

Anaconda Python macht Datenwissenschaftlern auch das Leben leichter, indem es verschiedene gängige Projekte für die interaktive Arbeit mit Daten bündelt. Zwei der gängigsten sind Jupyter Notebook und JupyterLab, die Live-Umgebungen bereitstellen, um Python Code zu schreiben, Daten zu importieren und Ergebnisse zu visualisieren. Anaconda richtet die entsprechenden Instanzen für Sie ein und managt diese - die Arbeit wird so auf einen Mausklick reduziert.

Anaconda bündelt diverse hilfreiche Applikationen und übernimmt auch die Verwaltungsaufgaben.
Anaconda bündelt diverse hilfreiche Applikationen und übernimmt auch die Verwaltungsaufgaben.
Foto: IDG

Weitere, enthaltene Anwendungen sind:

  • Qtconsole - eine grafische Benutzeroberfläche für Jupyter, die die Qt Interface Library verwendet. Sie ist nützlich, wenn Sie mit Jupyter Notebooks lieber über eine plattformeigene Oberfläche als über einen Webbrowser arbeiten wollen.

  • Spyder - eine in Python geschriebene Mini-IDE, die sich hauptsächlich an Entwickler richtet, die mit IPython/Jupyter Notebooks arbeiten. Es kann auch als Bibliothek für Python-Anwendungen verwendet werden, die eine IDE-ähnliche Schnittstelle benötigen.

  • RStudio - ein Toolset, um mit der Programmiersprache R zu arbeiten, die in diversen Bereichen für Datenanalysezwecke verwendet wird. RStudio bietet Möglichkeiten, sowohl mit Python als auch mit R zu arbeiten.

  • Visual Studio Code - Microsofts Editor ist dank seiner enormen Auswahl an Erweiterungen extrem wandelbar. Für die Arbeit mit Python stellt es eine der besten Entwicklungsumgebungen dar. Da kommt es gelegen, dass Anaconda-Nutzer direkt in Visual Studio Code einsteigen können, ohne es separat installieren zu müssen.

Wann Miniconda die bessere Option ist

Wenn Sie sich lieber schrittweise mit Anaconda Python vertraut machen wollen, empfiehlt sich der Einstieg mit der abgespeckten Version Miniconda. Die installiert nur das absolute Minimum, um mit Anaconda loszulegen: Interpreter, Package Manager und ein paar andere grundlegende Dinge. Sie können zwar weitere Komponenten hinzufügen oder mit Conda über die Kommandozeile Umgebungen erstellen.

Allerdings sollten Sie drei wesentliche Dinge im Hinterkopf behalten, wenn Sie mit Miniconda arbeiten wollen:

  1. Die Anaconda Navigator GUI ist nicht standardmäßig installiert. Wenn Sie diese benötigen, können Sie diese mit dem Befehl conda install anaconda-navigator hinzufügen.

  2. Miniconda wird standardmäßig in ein Verzeichnis namens Miniconda3 und nicht Anaconda installiert. Ein Umstand der potenziell Verwirrung stiften kann. Das Installationsverzeichnis kann jedoch nach Bedarf angepasst werden.

  3. Conda kann nur verwendet werden, um Pakete aus Condas eigenem Repository in Miniconda zu installieren. Sie können pip verwenden, um PyPI-Bibliotheken in Miniconda zu installieren. Diese können jedoch nicht mit Conda gemanagt werden, sondern nur mit pip. Zudem sind weitere Schritte nötig, damit pip und Conda koexistieren können. Wenn Sie wollen, dass Conda alles managt, besteht die Möglichkeit, PyPI- in Conda-Packages "umzupacken".

(fm)

Dieser Beitrag basiert auf einem Artikel unserer US-Schwesterpublikation Infoworld.