635 Stimmen

Python vs Cpython

Worum geht es bei all dem Wirbel um Python und CPython (Jython, IronPython), ich verstehe es nicht:

python.org erwähnt, dass CPython ist:

Die "traditionelle" Implementierung von Python (Spitzname CPython)

noch eine weitere Stack Overflow Frage erwähnt, dass:

CPython ist der Standard-Bytecode-Interpreter von Python, der in C geschrieben ist.

Ehrlich gesagt verstehe ich nicht, was beide Erklärungen praktisch bedeuten, aber was ich dachte war, wenn ich CPython verwende, bedeutet das, dass wenn ich einen Beispiel-Python-Code ausführe, er ihn in die C-Sprache übersetzt und dann ausführt, als ob es C-Code wäre

Was genau ist also CPython und wie unterscheidet es sich im Vergleich zu Python und sollte ich wahrscheinlich CPython anstelle von Python verwenden und wenn ja, welche Vorteile hat es?

36voto

orlenko Punkte 1251

Python ist eine Sprache: eine Reihe von Regeln, die verwendet werden können, um Programme zu schreiben. Es gibt mehrere Implementierungen dieser Sprache.

Unabhängig davon, welche Implementierung Sie wählen, tun sie im Grunde dasselbe: Sie nehmen den Text Ihres Programms und interpretieren ihn, führen seine Anweisungen aus. Keiner von ihnen übersetzt Ihren Code in C oder eine andere Sprache.

CPython ist die originale Implementierung, geschrieben in C. (Der "C"-Teil in "CPython" bezieht sich auf die Sprache, die verwendet wurde, um den Python-Interpreter selbst zu schreiben.)

Jython ist dieselbe Sprache (Python), jedoch implementiert mit Java.

Der IronPython-Interpreter wurde in C# geschrieben.

Es gibt auch PyPy - ein Python-Interpreter, der in Python geschrieben wurde. Wählen Sie aus :)

13voto

Abhijit Punkte 58646

Implementierung bedeutet, welche Sprache zur Implementierung von Python verwendet wurde und nicht, wie Python-Code implementiert werden würde. Der Vorteil der Verwendung von CPython liegt in der Verfügbarkeit von C-Runtime sowie der einfachen Integration mit C/C++.

Also wurde CPython ursprünglich mit C implementiert. Es gab andere Abspaltungen von der ursprünglichen Implementierung, die es Python ermöglichten, Java (Jython) oder .NET Runtime (IronPython) zu nutzen.

Je nach Verwendung der Implementierung kann die Verfügbarkeit von Bibliotheken variieren, zum Beispiel ist Ctypes in Jython nicht verfügbar, daher würde keine Bibliothek, die ctypes verwendet, in Jython funktionieren. Ebenso, wenn Sie eine Java-Klasse verwenden möchten, können Sie dies nicht direkt von CPython aus tun. Sie brauchen entweder ein Zwischenglied (JEPP) oder müssen Jython verwenden (die Java-Implementierung von Python)

9voto

Oussama L. Punkte 1764

Sie sollten wissen, dass CPython Multithreading nicht wirklich unterstützt (es tut es, aber nicht optimal) aufgrund des Global Interpreter Lock. Es hat auch keine Optimierungsmechanismen für Rekursion und hat viele andere Einschränkungen, die andere Implementierungen und Bibliotheken zu füllen versuchen.

Sie sollten einen Blick auf diese Seite im Python-Wiki werfen.

Sehen Sie sich die Code-Snippets auf dieser Seite an, es wird Ihnen eine gute Vorstellung davon geben, was ein Interpreter ist.

3voto

Sushant Chaudhary Punkte 1727

Die ursprüngliche und standardmäßige Implementierung von Python wird normalerweise CPython genannt, wenn Sie es mit den anderen Optionen kontrastieren möchten (ansonsten einfach nur "Python"). Dieser Name kommt daher, dass er in portabler ANSI C-Sprachcode geschrieben ist. Dies ist das Python, das Sie von http://www.python.org abrufen, mit den Distributionen ActivePython und Enthought erhalten und das automatisch auf den meisten Linux- und Mac OS X-Maschinen vorhanden ist. Wenn Sie eine vorinstallierte Version von Python auf Ihrem Computer gefunden haben, handelt es sich wahrscheinlich um CPython, es sei denn, Ihr Unternehmen oder Ihre Organisation verwendet Python auf speziellere Weise.

Wenn Sie nicht vorhaben, mit Python Java oder .NET Anwendungen zu skripten oder die Vorteile von Stackless oder PyPy überzeugend finden, möchten Sie wahrscheinlich das Standard-CPython-System verwenden. Da es die Referenzimplementierung der Sprache ist, läuft es in der Regel am schnellsten, ist am vollständigsten und aktuellsten und ist robuster als die alternativen Systeme.

0voto

Premraj Punkte 65511

Die Implementierung einer Programmiersprache ist ein System zur Ausführung von Computerprogrammen.

Es gibt zwei generelle Ansätze zur Implementierung von Programmiersprachen:

  • Interpretation: Ein Interpreter nimmt ein Programm in einer Sprache als Eingabe entgegen und führt die in dieser Sprache geschriebenen Aktionen auf einer Maschine aus.
  • Kompilierung: Ein Compiler nimmt ein Programm in einer Sprache als Eingabe entgegen und übersetzt dieses Programm in eine andere Sprache, die als Eingabe für einen anderen Interpreter oder einen anderen Compiler dienen kann.

Python ist eine interpretierte, höhere Programmiersprache, die im Jahr 1991 von Guido van Rossum erstellt wurde.

CPython ist die Referenzversion der Python-Programmiersprache, die auch von Guido van Rossum in C geschrieben wurde.

Weitere Liste von Python-Implementierungen

Quelle

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X