2012-09-14 9 views
6

Gibt es einen Unterschied in der Python-Programmierung während der Verwendung von nur Python und während der Verwendung von Pypy Compiler? Ich wollte versuchen, Pypy zu verwenden, so dass meine Programmlaufzeit schneller wird. Funktioniert die gesamte Syntax, die in Python funktioniert, auch in pypy? Wenn es keinen Unterschied gibt, können Sie mir sagen, wie ich Pypy auf Debian lunux und einige Anwendungsbeispiele auf Pypy installieren kann? Google enthält nur wenige Informationen über Pypy als seine Beschreibung.Verwendung von Pypy-Compiler

Antwort

11

Vom PyPy features page:

PyPy 1.9 implementiert Python 2.7.2 und läuft auf Intel x86 (IA-32) und x86_64-Plattformen, mit ARM und PPC im Gang zu sein. Es unterstützt alle die Kernsprache, die Python-Testsuite übergeben.

Dies bedeutet, dass so ziemlich jeder Code, den Sie in Python 2.7 geschrieben haben, funktioniert. Die einzigen erwähnenswerten Ausnahmen sind einige in C geschriebene Python-Erweiterungen wie numpy.

Installation sollte ziemlich einfach sein, können Sie download a linux binary from here. Dann extrahiere einfach den Interpreter. Ab diesem Punkt können Sie Ihre Python-Programme ähnlich ausführen, wie Sie sie mit dem normalen Python-Interpreter ausführen würden.

in der Befehlszeile statt:

python my_program.py 

Verwendung:

path/to/where/you/installed/pypy my_program.py 

Beispiele, wie/warum Sie vielleicht PyPy verwenden, aktivieren this video von PyCon aus 2012.

+2

Siehe auch http://pypy.org/compat.html, das alle bekannten Hauptunterschiede zwischen PyPy und dem aktuellen 2.x CPython auflistet und eine Verbindung zu allen bekannten Unterschieden bis hinunter zu einer nagelnden Detailebene hat. – abarnert

+0

ist im Allgemeinen nicht schneller pypy? Wenn ich mein Programm mit pypy ausführe, dauert es doppelt so lange wie bei der normalen Ausführung eines Python-Skripts. seltsam...!! –

+3

Pypy wird in vielen Fällen schneller sein, aber nicht alle. Sie werden wahrscheinlich größere Beschleunigungen in größeren, länger ausgeführten Programmen sehen. Es gibt einen Geschwindigkeitsvergleich zwischen CPython und PyPy bei einer Reihe von verschiedenen Aufgaben hier: http://speed.pypy.org/ Beachten Sie, dass PyPy bei einigen besser ist als bei anderen. – Wilduck

2

pypy ist eine konforme alternative Implementierung der Python-Sprache. Dies bedeutet, dass es wenige (beabsichtigte) Unterschiede gibt. Einer der wenigen Unterschiede ist, dass Pypy keine Referenzzählung verwendet. Dies bedeutet zum Beispiel, dass Sie Ihre Dateien manuell schließen müssen. Sie werden nicht automatisch geschlossen, wenn Ihre Dateivariable den Gültigkeitsbereich von CPython verlässt.

+0

"* wenige * absichtliche Syntaxunterschiede"? Im Gegensatz zu keiner? Könnten Sie irgendwelche syntaktischen Unterschiede geben? – delnan

+0

Ah schlampig von mir. Ich meinte Unterschiede, nicht speziell Syntaxunterschiede. –

+2

Dateien * werden * automatisch geschlossen, Sie können sich nicht darauf verlassen, dass dies sofort passiert. Also 'offen (' foo ',' w '). Schreiben (' test '); print open ('foo', 'r') .lesen() 'wird wahrscheinlich nicht" test "drucken. Aber das ist sowieso Python schlecht, da (a) die offiziellen Python-Dokumente nicht garantieren, dass es verwendet wird und (b) sich auf einen Nebeneffekt verlässt, der durch Dinge ausgelöst wird, die außerhalb des Bereichs liegen, um einen bedeutsamen Einfluss auf den Weg zu haben Ihr Programm arbeitet ist eine * grobe * Verletzung von "explizit ist besser als implizit". – Ben