Ein Python-Interpreter übersetzt die menschliche Sprache in Maschinencode, sodass ein Computer sie verstehen und ausführen kann. Hier erfährst du alles, was du über die besten Python-Interpreter wissen musst: CPython, PyPy, Jython, GraalPython…
Python ist eine der beliebtesten Programmiersprachen und wird von vielen Entwicklern auf der ganzen Welt verwendet. Einer der Gründe für seinen Erfolg ist, dass es sich um eine höhere Programmiersprache handelt, deren Code in einer für den Menschen lesbaren Form geschrieben ist.
Der Computer ist jedoch nicht in der Lage, diese Hochsprache zu verstehen. Er braucht einen Übersetzer, der den High-Level-Code in Maschinencode umwandelt, damit das Betriebssystem ihn ausführen kann. Dies ist die Aufgabe des Interpreters.
💡Auch interessant:
Python für Dummies Teil 2 |
Python Schulung |
Was ist Scala und wieso ist Python besser |
Top der nativen Python Funktionen |
Imageio |
Python für Dummies Teil 1 |
Python programmieren lernen |
Was ist ein Python-Interpreter?
Ein Python Interpreter ist ein Computerprogramm, das als Übersetzungswerkzeug für den Computer fungiert, um ihm die Übersetzung und Ausführung von Code auf höherer Ebene zu ermöglichen. Das Programm führt den Code direkt aus, ohne ihn in Maschinensprache oder Bytecode umzuwandeln.
Im Gegensatz zu einem Compiler erzeugt der Interpreter nicht direkt eine separate Datei für den Bytecode. Stattdessen führt er den Quellcode direkt aus.
Einfach ausgedrückt ist ein Python-Interpreter also ein Programm, das den Python-Code ausführt. Der Begriff kann sich jedoch auch auf eine interaktive Shell auf dem Terminal oder der Eingabeaufforderung beziehen. Er kann sich auch auf das Programm oder die komplette Implementierung beziehen, die auf dem System installiert wird, um Python-Programme auszuführen.
Es handelt sich um das Werkzeug für den letzten Schritt bei der Ausführung des Python-Codeobjekts. Bevor der Quellcode den Python-Interpreter erreicht, durchläuft er drei Stufen: Lexing, Parsing und Compilation.
Der High-Level-Quellcode wird in ein strukturiertes Codeobjekt umgewandelt. Schließlich führt der Interpreter dieses strukturierte Codeobjekt aus.
Bei der Installation von Python auf einem System wird der Python-Interpreter installiert, um den Code leichter lesbar und ausführbar zu machen. Der standardmäßige Python-Interpreter ist CPython, aber es gibt mehrere hochwertige Alternativen.
Wie funktioniert der Python-Interpreter?
Die Ausführung von Python-Code ist ein Prozess, der in vier Schritte unterteilt ist. Zunächst zerlegt der Lexer während des Lexing-Prozesses die Zeilen des Quellcodes in Tokens.
Während des Parsing-Schritts werden die Tokens vom Parse verwendet, um eine Abstract Syntax Tree (AST)-Struktur zu erzeugen, indem die Beziehung zwischen den Tokens dargestellt wird.
Der dritte Schritt ist der Compiling-Schritt, in dem der Python-Compiler die ASTs in Code-Objekte kompiliert. Diese Objekte werden als pyc- oder .pyo-Dateien gespeichert.
Während des Interpretationsschritts schließlich, nachdem der Compiler die AST-Struktur in ein Codeobjekt umgewandelt hat, führt der Python-Interpreter das Codeobjekt aus.
Obwohl Python tatsächlich einen versteckten Compiler enthält, wird es als interpretierte Programmiersprache dargestellt. Aus gutem Grund: Der Python-Interpreter arbeitet mehr als der Compiler.
Das Lexing, Parsing und Kompilieren des Quellcodes in .pyc- und .pyo-Dateien wird intern durchgeführt und von der Python-Implementierung vor den Augen des Entwicklers verborgen.
💡Verwandte Artikel:
Python – Vermeide diese Fehler |
API mit Python Datenbank verbinden |
Webhooks in Python |
Python für Fortgeschrittene |
Matrix Implementierung Python |
Welche sind die besten Python-Interpreter?
Die ursprüngliche Implementierung von Python, die von der Python-Gemeinschaft häufig verwendet wird und auf der offiziellen Website zu finden ist, wurde mit der Programmiersprache C implementiert. Aus diesem Grund wird sie als CPython bezeichnet. Es gibt jedoch viele andere Interpreter für die Sprache Python.
CPython: der standardmäßige Python-Interpreter
CPython ist der Standard-Python-Interpreter, wenn du Python von der offiziellen Website installierst. Er ist in den Programmiersprachen C und Python geschrieben, wie der Name schon sagt.
Es handelt sich um die weltweit am häufigsten verwendete Python-Implementierung. Sie wird von der Python-Gemeinschaft entwickelt und von der Python Software Foundation unterstützt.
Obwohl es sich um einen Interpreter handelt, fungiert CPython auch als Compiler. Es führt mehrere Kompilierungsvorgänge durch, wandelt den Python-Code in Bytecode um und verwendet dann einen Interpreter, um diese auszuführen. Dieser Vorgang wird virtuell durchgeführt, weshalb CPython kein Compiler ist.
Wenn du Code in Python schreibst und ihn als Open-Source-Projekt weitergeben möchtest, solltest du dich an CPython-Nutzer wenden, um ein möglichst großes Publikum zu erreichen.
PyPy: Ein schnellerer Interpreter
PyPy ist eine leistungsstarke und schnelle Implementierung der Programmiersprache Python. Sie wird allgemein als die beste Alternative zu CPython angesehen.
Im Vergleich ist PyPy schneller, da es sich um einen JIT-Compiler (just-in-time) handelt und nicht um einen Interpreter wie CPython. Jeder Python-Code kann auf PyPy laufen, mit Ausnahme von Code, der von der CPython-Erweiterung abhängt.
Obwohl PyPy ein Interpreter ist, verwendet es intern die Meta-Tracing-Technik, um einen Interpreter in einen Just-in-Time-Compiler zu verwandeln. Dies löst das Problem der langsamen Codeausführung, das Interpretern im Vergleich zu Compilern innewohnt.
Im Allgemeinen ist PyPy sehr empfehlenswert, um die Leistung eines Programms zu steigern. Außerdem verbraucht ein Python-Programm, das mit PyPy ausgeführt wird, weniger Speicher als CPython.
Stackless Python: Ein Interpreter ohne Call-Stack C
Ein weiterer sehr leistungsfähiger Python-Interpreter ist Stackless Python. Wie CPython ist es ein Programm, das in C und Python geschrieben ist. Allerdings vermeidet es, wie der Name schon sagt, den C Call Stack.
Ein Call Stack ist eine Stack-Datenstruktur, die Subroutinen beibehält und über den Kontrollfluss von Funktionsaufrufen entscheidet. Dieser Interpreter vermeidet call stack, verwendet aber stack für Funktionsaufrufe.
Weitere bemerkenswerte Funktionen sind die Unterstützung von Co-Routinen, Kommunikationskanälen und die Serialisierung von Aufgaben. Die wichtigste Funktion ist der Mikro-Thread, der die Schwierigkeiten erspart, die mit den Threads üblicher Betriebssysteme verbunden sind.
Jython: Der Python-Interpreter für Java
Die Jython-Implementierung hilft bei der Ausführung von Python-Code auf der Java-Plattform. Das Tool hieß früher JPython, weil es in Java und Python geschrieben wurde, wurde aber 1999 in Jython umbenannt.
Ursprünglich wurde der Interpreter 1997 eingeführt, um Java anstelle von C für leistungsfähigeren Code in Python-Programmen zu verwenden. Mit Jython können alle Java- und Python-Module importiert und verwendet werden, mit Ausnahme derer, die in C implementiert sind.
Der Python-Quellcode kann in Java-Bytecode kompiliert werden, der von der Java Virtual Machine (JVM) ausgeführt werden kann. Dieser Interpreter ist ab der Python-Version 2.x unerlässlich, um den Python-Code auf der JVM auszuführen.
IronPython: ein Open-Source-Interpreter für C#
IronPython ist eine Open-Source-Implementierung der Programmiersprache Python, die in C# geschrieben ist. Ihr einziger Zweck ist es, die Integration mit dem Microsoft .NET-Framework zu erleichtern. So können Python-Entwickler die Python-Bibliotheken zusammen mit .NET verwenden.
Der Interpreter wird über die Dynamic Language Infrastructure (DLR) und die Common Language Infrastructure implementiert. Er unterstützt die dynamische Typisierung und das dynamische Dispatching. Obwohl IronPython kaum noch genutzt wird, gibt es eine Gruppe von Freiwilligen, die das Projekt auf GitHub weiter pflegen.
GraalPython: Der experimentelle Interpreter
GraalPython ist eine experimentelle Python-Implementierung, die von GraalVM erstellt wurde. Es handelt sich um eine völlig neue Python-Implementierung, die in den GraalVM-Compiler integriert ist.
Sie ist in Java geschrieben und wird mit GraalVM über das Truffle-Framework implementiert. GraalPython soll die SciPy-Bibliothek unterstützen und kann reinen Python-Code so schnell wie CPython ausführen.
Welchen Python-Interpreter sollte man wählen?
Die Wahl zwischen Python2 und Python3 war lange Zeit ein heiß diskutiertes Thema. Jetzt ist jedoch klar, dass man Python3 lernen und wählen muss.
Die Community hat angekündigt, dass es keine weiteren Updates von Python2 geben wird und dass nur noch neue Versionen von Python3 als offiziell gelten.
Bei den Interpretern ist CPython nach wie vor der am häufigsten verwendete, da es die erste Implementierung von Python ist. Viele Entwickler haben noch nie von einer anderen Implementierung gehört und wissen nicht einmal, dass sie CPython verwenden.
Wie auch immer, es steht dir frei, einen anderen Interpreter aus der Liste der besten zu wählen. Die Wahl hängt wirklich von deinen Vorlieben und Bedürfnissen ab. Es gibt noch weitere, aber viele sind inaktiv oder werden nicht mehr genutzt.
Wie lerne ich Python und seine Interpreter?
Um die Programmiersprache Python zu lernen, kannst du DataScientest wählen. Alle unsere Kurse beinhalten ein Modul, das der Programmierung in Python gewidmet ist.
Du wirst in die Grundlagen dieser Sprache eingeführt, aber auch in die Bibliotheken der Data Science wie NumPy und Pandas. Die anderen Module unserer Kurse decken die verschiedenen Konzepte der Datenwissenschaft ab: Machine Learning, DataViz, Datenbanken, Business Intelligence….
Am Ende des Kurses verfügst du über alle Kompetenzen, die du brauchst, um den Beruf auszuüben, der dem gewählten Kurs entspricht: Data Analyst, Data Scientist, Data Engineer oder Data Manager. Von unseren Alumni haben 80 % sofort einen Job gefunden.
Alle unsere Kurse werden als Fernkurse angeboten und verfolgen einen Blended-Learning-Ansatz, der Online-Lernen auf einer gecoachten Plattform und Masterclasses miteinander verbindet. Du kannst zwischen einer Weiterbildung oder einem intensiven BootCamp wählen.
Was die Finanzierung betrifft, so ist unsere Organisation für das die Finanzierung durch den Bildungsgutschein akkreditiert. Verliere keine Sekunde mehr und entdecke die DataScientest-Schulungen!