PyPy
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Ubuntu 20.04 Focal Fossa
Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
PyPy 🇬🇧 ist eine Implementierung der Programmiersprache Python, welche weitestgehend kompatibel zur Referenzimplementierung CPython ist.
Im Gegensatz zu CPython nutzt PyPy einen Just-in-Time Compiler, so dass der meiste Python-Code (deutlich) schneller ausgeführt wird. Weitere Information hierzu sind auf der Webseite 🇬🇧 von PyPy zu finden.
Installation¶
PyPy und das "normale" Python (also die CPython-Implementierung) können problemlos parallel installiert werden.
aus den Paketquellen¶
PyPy3 (also die Python3 Version) ist in den offiziellen Paketquellen enthalten. Das Paket kann wie folgt installiert werden[1]:
pypy3 (universe, ab Focal)
Befehl zum Installieren der Pakete:
sudo apt-get install pypy3
Oder mit apturl installieren, Link: apt://pypy3
Die Version aus dem Paketquellen ist aber nicht unbedingt die aktuellste Version. Dies bietet in der Regel aber eine bessere Kompatibilität mit der Referenzimplementierung.
als snap¶
Die aktuelle Version von PyPy gibt es als snap, welches von den Entwicklern von PyPy selber bereit gestellt wird:
sudo snap install pypy3 --classic
Hinweis!
Fremdsoftware kann das System gefährden.
Nutzung¶
PyPy wird genau wie Python genutzt, nur das man ein Python-Skript nicht mit dem Befehl python3
sondern mit pypy3
:
So würde z.B. der Befehl[2]:
pypy3 mein_skript.py
das Skript mein_skript.py mit PyPy für Python 3.x starten.
Ruft man PyPy ohne Angabe eines Skripts auf, gelangt man - ebenso wie bei CPython - zu einer interaktiven Python-Shell.
PyPy kennt eine ganze Reihe von Optionen, die man aber eher selten braucht. Die komplette Liste der Optionen erhält man beim Aufruf von
pypy3 --help
Einschränkungen¶
Nutzt ein Python-Programm bzw. Modul eine in C geschriebene Erweiterung, die für CPython kompiliert wurde, dann funktioniert dieses eventuell nicht mit PyPy.
Viele (populäre) Pakete für CPython funktionieren aber problemlos mit PyPy, eine Liste ist auf einer Webseite bei PyPy 🇬🇧 zu finden. Eine Anleitung, wie man Pakete für PyPy via pip installiert, ist ebenfalls in der offiziellen Dokumentation 🇬🇧 zu finden.
Links¶
technische Unterschiede 🇬🇧 von PyPy und CPython
FAQ Seite 🇬🇧 von PyPy
englische Wikipedia Seite zu PyPy, welcher unter anderem weitere technische Details und Informationen zur Geschichte von PyPy enthält