CPython, Cython, PyPy… Eine Einführung in die verschiedenen Python-Varianten

Dez 19, 2021
admin

Wenn Sie sich für Python-Programmierung interessieren, haben Sie wahrscheinlich schon die Worte CPython, Cython, Jython, PyPy… gehört. Aber was sind sie genau?

In diesem Artikel werden wir eine kleine Einführung in einige dieser Python-Varianten geben, so dass Sie zumindest verstehen können, worauf sie sich genau beziehen, wenn Sie sie in einem anderen Zusammenhang sehen.

CPython

CPython ist die ursprüngliche Python-Implementierung, die Sie wahrscheinlich täglich benutzen und die Sie offiziell von python.org herunterladen können. Der Name kommt daher, dass der Python-Code in C zu Bytecode kompiliert wird.

Jython

Jython ist eine alternative Implementierung, die Java anstelle von C verwendet, um den Bytecode zu erhalten. Dadurch kann dieser Bytecode in der JVM, der Java Virtual Machine, wie andere Sprachen wie Kotlin, Scala oder Java selbst ausgeführt werden.

Da Jython nur eine weitere Implementierung ist, bleibt die Syntax unverändert: Sie können Ihren gesamten CPython-Code nehmen und ihn unter Jython ausführen, ohne eine einzige Zeile ändern zu müssen.

Cython

Cython ist ein Compiler, der es ermöglicht, C-Erweiterungen für Python zu schreiben, normalerweise mit dem Ziel, es effizienter zu machen. Im Gegensatz zu den vorangegangenen Beispielen handelt es sich nicht um eine andere Implementierung: Er verwendet CPython, um den Python-Code auszuführen. Sie kann als Obermenge von Python betrachtet werden, da sie die gesamte Funktionalität von Python enthält und zusätzliche C-Fähigkeiten hinzufügt.

Diese Erweiterungen werden in einer spezifischen Syntax geschrieben, die derjenigen sehr ähnlich ist, die Sie zum Schreiben des entsprechenden C-Codes verwenden. Sehen wir uns dieses Beispiel an (von der Wikipedia-Seite von Cython)

def sum_up_to_n(n): a = 0 for i in range(n): a += i return acpdef sum_up_to_n(int n): cdef int a = 0, i for i in range(n): a += i return a

PyPy

Mit PyPy haben wir eine weitere Python-Implementierung wie CPython oder Jython. Das Interessante an dieser Implementierung ist, dass sie in… Python selbst (ja, das hat Sie wahrscheinlich umgehauen, also lesen Sie weiter, um zu verstehen, was wir damit meinen)

Der Kern von PyPy ist ein Just-In-Time (JIT)-Compiler, der die sich am häufigsten wiederholenden Teile Ihres Quellcodes in den nativen Code der Maschine kompiliert (anstelle von Bytecode, wie es CPython oder Jython taten). Die Ausführung von nativem Code ist effizienter als die Ausführung von Bytecode, so dass dies zu großen Geschwindigkeitsverbesserungen führen kann, selbst wenn man die Zeit berücksichtigt, die für die Kompilierung des Codes benötigt wird.

PyPy hat viele detaillierte Informationen über seine Vorteile (und Nachteile) auf seiner Website, sowie einige Leistungstipps und Ratschläge, in welchen Fällen es nicht am besten geeignet ist, so dass ich Sie ermutige, es zu überprüfen, wenn Sie interessiert sind.

Zusammenfassung

Nach diesem Artikel sollten Sie mit den Konzepten von CPython, Jython, Cython und PyPy besser vertraut sein. Da Sie aber wahrscheinlich mehr darüber erfahren möchten, habe ich eine Liste von Links zusammengestellt, die sehr nützlich sein können, wenn Sie tiefer in das Thema eintauchen möchten. Ich hoffe, Sie finden sie nützlich!

Nützliche Links

  • Python.org – Alternative Python-Implementierungen
  • Der endgültige Leitfaden zu Jython
  • Cython offizielle Website
  • PyPy offizielle Website
  • Just-in-time compilation
  • Artikel auf Toptal über Python-Implementierungen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.