Das Python-Ökosystem im Überblick (Stand: Juli 2020)

In diesem Beitrag geht es zur Abwechslung nicht um die Programmierung mit Python. Ich möchte das umfangreiche „Python-Ökosystem“ mit wenigen Worten vorstellen. Wer sich zum ersten Mal mit Python beschäftigt, wird mit vielen Namen konfrontiert, die alle etwas mit Python zu tun haben, aber doch etwas Eigenes sind. Da gibt es u.a. CPython, Jupyter, Anconda, IronPython, PyPy oder Django. Und dabei habe ich die „Hunderttausend“ Erweiterungen, die es für Python gibt, sowie die zahlreichen IDEs mit ihren teilweise ausgefallenen Namen gar nicht aufgezählt. Bis auf CPython sind alle Begriffe eine „Spielart“ von Python, die man installieren und mit der „man“ arbeiten kann.

Wer die Programmierung mit Python erlernen möchte, sollte Python für sein Betriebssystem in der aktuellsten Version von Python.org installieren und sich um die anderen Vertreter zunächst keine Gedanken machen. Als IDE (also als „Programmiereditor“) ist Idle sehr gut geeignet, das mit Python in der Regel installiert wird. Ansonsten empfehle ich Visual Studio Code als universellen Programmiereditor – hier muss die Python-Erweiterung von Microsoft aber einmalig nachinstalliert werden, was weniger als eine Minute in Anspruch nimmt. Alles kostenlos und für alle Plattformen verfügbar.

Der Reihe nach und alphabetisch.

Anaconda

Anaconda ist der Name einer Python-Distribution, die in den Datenwissenschaften eingesetzt wird. Nach eigener Aussage ist Anaconda die beliebteste Plattform für Datenanalye. Ihr Vorteil ist, dass alle für das Analysieren von Daten benötigten Packages von Anfang dabei sind (aktuell > 250). Auch wenn hinter Anaconda mit der Anaconda Inc. aus Austin/Texas in den USA ein kommerzieller Anbieter steht, ist Anaconda kostenlos.

https://de.wikipedia.org/wiki/Anaconda_(Python-Distribution)

CPython

CPython ist die Referenzimplementierung der Python-Foundation, in der alle Neuerungen implementiert werden. Wer eine eigene Python-Distribution herausgegeben möchte, sollte sich an CPython orientieren. Für den Anwender spielt CPython insofern eine Rolle, da die von der Python Foundation herausgegebene Python-Version auf diese Referenz-Implementierung basiert.

CPython ist das „Standard-Python“.

IronPython

IronPython ist ein bei Microsoft bereits im Jahr 2006 (!) gestartetes Open Source-Projekt. Es ist aktuell zu CPyton 2.7 kompatibel. Während Python eine eigene Laufzeitumgebung mitbringt, setzt IronPython auf dem .Net Framework, so dass die gesamte .Net-Klassenbibliothek zur Verfügung steht. Das ist vor allem für Entwickler, die ohnehin .Net verwenden, oder deren Programme nur unter WIndows ausführen sollen, attraktiv. Programmiert wird mit Microsoft Visual Studio, (nicht zu verwechseln mit Visual Studio Code), das in der Community Edition seit vielen Jahren kostenlos ist.

Nachdem der geistige Vater des Projekts, Jim Hugunin, Microsoft vor ein paar Jahren wieder verlassen hatte, schlief das Projekt offenbar etwas ein, wenngleich es laut Projektportal fortgeführt werden soll. Aktuell wird nur Python in der Version 2.7 unterstützt. Ob es eine Unterstützung für 3.x und eine Portierung auf .NET Core geben wird, so dass IronPython auch unter anderem Plattformen eingesetzt werden kann, hängt offenbar von der Frage ab, wer bereit ist an dem Projekt mitzuarbeiten.

https://de.wikipedia.org/wiki/IronPython

Jupyter

Die wichtigse Kleinigkeit vorweg. Es heißt „Jupyter“ und nicht „Jupiter“, da die Programmierumgebung zuerst nur für die drei Programmiersprachen Julia, Python und R umgesetzt wurde. Inzwischen werden viele weitere Sprachen als Kernel“ angeboten, so dass es sich um eine vielseitige Angelegenheit handelt. Ausgesprochen wird der Name aber wie der Planet bzw. es spielt auch keine ganz so große Rolle;)

Alles begann im Jahr 2014 mit Projekt IPython. IPython existiert aber weiter als Python-Implementierung und „Kernel“ für Jupyter und kann noch unabhängig von Jupyter installiert werden.

https://de.wikipedia.org/wiki/Project_Jupyter

Bei Jupyter arbeiten die User mit einem sog. Notebook, also einem Notizblock, in dem sie Befehle im Browser eingeben (auch dann, wenn Jupyter lokal installiert wurde). Wie bei der Python-Shell wird jeder Befehl sofort ausgeführt. Der große Vorteil ist, dass z.B. Listen, vor allem Datenstrukturen wie Matrizen, so ausgegeben werden, dass ihr Inhalt gut dargestellt wird. Auch Diagramme werden in die Ausgabe integriert. Weder muss Matplotlib installiert noch importiert werden. Das macht das Auswerten von Daten sehr komfortabel.

Da es so wichtig: Die Ausführung von Notebooks im Rahmen der Webplattform ist nur eine Option. Wurde Jupyter lokal installiert, steht grundsätzlich derselbe Komfort zur Verfügung. Jupyter ist damit ideal für das Lernen von Python geeignet und eine attraktive Alternative zur Python-Shell oder Idle.

Auch für ein lokal installiertes Jupyter lassen sich weitere Kernels hinzufügen, so dass auch in der Offline-Version andere Sprache als Python zur Auswahl stehen.

IPython

Wurde im letzten Abschnitt bereits erwähnt. War früher etwas Eigenes, ging dann in Juypter über, steht aber in der damaligen Version nach wie vor als etwas Eigenes zum Download zur Verfügung. In diesem Fall ist IPython eine komfortablere Python-Shell, die sich sehr gut zum Kennenlernen von Python eignet. Der Vorteil gegenüber Jupyter: Es muss deutlich weniger installiert werden, die Installation ist einfacher und am Ende arbeitet „man“ in einer vertrauten Shell, die aber mehr Komfort bietet und sich insgesamt „besser anfühlt“ als die etwas schlichte Python-Shell.

PyPy

PyPy ist ein Compiler für Python-Programme, der die Ausführung von Python-Programmen beschleunigen soll (ich habe damit aber noch nie gearbeitet). Inzwischen soll auch die Förderung des Projekts ausgelaufen sein, so dass die Fortführung des Projekts unsicher ist (dies ist aber lediglich meine persönliche Einschätzung und kein offizielles „Statement“).

https://de.wikipedia.org/wiki/PyPy

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert.


Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.