[[Vorlage(Getestet, bionic) (Getestet focal)]] {{{#!vorlage Wissen [:Pakete installieren: Installation von Programmen] [:Terminal: Ein Terminal öffnen] }}} [[Inhaltsverzeichnis()]] [[Bild(pypy-logo.png, 72, align=left)]] [https://pypy.org/index.html PyPy] {en} ist eine Implementierung der Programmiersprache [:Python:], welche weitestgehend kompatibel zur Referenzimplementierung CPython ist. Im Gegensatz zu CPython nutzt PyPy einen [wikipedia:Just-in-time-Kompilierung:Just-in-Time Compiler], so dass der meiste Python-Code (deutlich) schneller ausgeführt wird. Weitere Information hierzu sind auf der [https://pypy.org/features.html Webseite] {en} 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]: {{{#!vorlage Paketinstallation pypy3, universe, ab Focal }}} 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: {{{#!vorlage Befehl sudo snap install pypy3 --classic }}} [[Vorlage(Fremd, Software)]] = 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]: {{{#!vorlage Befehl 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 {{{#!vorlage Befehl 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 [https://pypy.org/compat.html Webseite bei PyPy] {en} zu finden. Eine Anleitung, wie man Pakete für PyPy via [:pip:] installiert, ist ebenfalls in der [http://doc.pypy.org/en/latest/install.html#installing-more-modules offiziellen Dokumentation] {en} zu finden. = Links = * [http://doc.pypy.org/en/latest/cpython_differences.html technische Unterschiede] {en} von PyPy und CPython * [https://doc.pypy.org/en/latest/faq.html FAQ Seite] {en} von PyPy * [wikipedia_en:PyPy:englische Wikipedia Seite] zu PyPy, welcher unter anderem weitere technische Details und Informationen zur Geschichte von PyPy enthält #tag: Programmierung, Python