Auf zu neuen Ufern? Python im Browser

Python
TigerJython
Trinket
Turtle
VPython
PyScript
Proseco
Pygame
Pygbag
Pyxel
microStudio
Brython
Creative Coding
Autor:in

Jörg Kantel

Veröffentlichungsdatum

28. Juni 2025

Bei all meiner (wiedererwachten) Begeisterung für TigerJython habe ich nicht vergessen, daß der Software eine wichtige Eigenschaft fehlt: TigerJython läuft nicht im Browser. Das ist natürlich in der heutigen Zeit ein schwerwiegendes Handicap und so habe ich mich nach Alternativen umgeschaut.

WebTigerJython und WebTigerPython

Das Java-basierte WebTigerJython und das neuere, auf Python 3 aufsetzende WebTigerPython (noch Beta, hier der Link zur Doku) sind die ersten Alternativen, die mir einfallen. Allerdings scheint WebTigerJython keine Möglichkeit zu haben, die Ergebnisse in eigene Seiten einzubetten. WebTigerPython kann dies (als iFrames) und es kann auch Python 3-Bibliotheken wie die Turtle, aber auch den Scientific Stack (wie numpy, scipy, sympy oder die matplotlib etc.) nutzen. Doch bei meinen bisherigen Versuchen liefen die Scripte noch arg gemächlich. Hier erwarte ich noch dringend Verbesserungen, aber die Software ist ja auch noch Beta. Wenn sie das Beta-Stadium verlässt, werde ich sie erneut testen.

Trinket

Trinket habe ich hier auf diesen Seiten schon häufig eingesetzt und die Ergebnisse lassen sich auch leicht als iFrames in eigene Seiten einbinden. Zwar hatte hatte ich mir vor einiger Zeit den kostenpflichtigen Plan Code+ geleistet, der angeblich Python 3 (ebenfalls mit dem Scientific Stack, aber zum Beispiel auch mit Pygame) können soll. Aber obwohl der hier monierte Fehler mittlerweile behoben ist, bin ich damit nicht wirklich glücklich (Pygame zum Beispiel läuft immer noch nicht fehlerfrei). Daher kann ich (eingeschränkt!) nur den Umfang des kostenlosen Plans empfehlen.

Turtle

Das große Plus von Trinket ist die Nutzung der Turtle im Browser, die (fast!) alle Befehle von Pythons Standard-Turtle abdeckt und die für eine Browser-Implementierung sehr schnell ist. Leider bekommt man bei Trinket nie heraus, welche Engine da im Hintergrund werkelt.

Processing

Es gibt bei Trinket in der kostenlosen Version auch noch eine Processing.py-Variante, die vermutlich auf ProcessingJS aufsetzt. Auch wenn diese – wie auch Processing.py selber – nicht mehr aktualisiert wird, sind die Ergebnisse recht ansprechend. Aber als zukunftsfähig würde ich das nicht (mehr) bezeichnen.

VPython

Eine große Stärke (auch des kostenlosen Plans) von Trinket ist die Integration von VPython als webbasiertes GlowScript. Der Physiker Rhett Allain von der Southeastern Louisiana University stellt damit unglaubliche Dinge an, die er in seinem Blog auf Wired und auf seinem YouTube-Kanal veröffentlicht. Aber VPython/GlowScript läut natürlich nicht nur auf Trinket, sondern es kann unter anderem auch auf Web VPython oder auch lokal zum Beispiel mit JupyterLab genutzt werden.

Der große Nachteil von Trinket ist, daß das Teil auf einem US-amerikanischen Server liegt. Und das ist in den heutigen Tagen der Trump-Administration und dem verstärkten Druck, seine digitale Souveränität zurückerobern zu müssen, natürlich leider für mich ein Grund, Trinket erst einmal nicht mehr zu nutzen. Aber ich hoffe trotzdem auf bessere Zeiten, denn »vor Trump« hatte ich gerne mit Trinket gespielt.

Pygame (via Pygbag)

Pygame (in Form der Fork Pygame-CE (Pygame Community Edition)) unterstützt mit Pygbag die Möglichkeit, Pygame-Programme webtauglich zu machen. Auch wenn es damit zwischenzeitlich mal mit einem Bug in macOS Sequoia Probleme gab, ist das eine hervorragende Option, Pygame-Programme ins Web zu bringen und in die eigenen Seiten einzubinden.

Pyxel

Die kleine (Python 3-) Retrogame-Engine oder Fantasy-Konsole Pyxel kann von Hause aus (mit ein paar Kommandozeilen) die Spiele als HTML-Dateien herausschreiben, die ebenfalls in die eigenen Seiten eingebunden werden können. Im Gegensatz zur Pygame-App mit Pygbag gibt diese beim Verlassen der Seite keine Warnung heraus. Auch wenn ich verstehe, warum Pygbag das macht, finde ich das Webverhalten von Pyxel angenehmer.

Brython

Brython (Browser Python) ist eine freie (BSD-3 Lizenz) Python-3-Implementierung, die im Browser läuft und als Ersatz für JavaScript gedacht ist. Neben der Standardbibliothek können einmal auch andere (Pure Python) Module geladen werden, allerdings keine Module, die zum Beispiel C- oder FORTRAN-basierte Teile enthalten. Das schließt Module wie numpy, scipy, matplotlib oder pandas aus. Dafür gibt es aber noch das »eingebautes« Modul browser, das den Python-Skripten Zugriffe auf das DOM-API erlaubt.

Brython ist als kompletter JavaScript-Ersatz konzipiert, kann also auch JavaScript-Objekte nutzen. Die Geschwindigkeit soll an die von CPython heranreichen.

microStudio (mit Brython)

Brython ist auch die Engine, die hinter der Python-Version von microScript, der Programmiersprache von microStudio werkelt. Die in meinen Augen leider völlig unterbewertete kleine Fantasy-Konsole kann man sowohl online auf den Seiten von microStudio (Vorsicht! US-amerikanischer Server!) wie auch lokal auf dem eigenen Rechner nutzen. Die Nachteile von Brython (keinen Zugriff auf den Scientific Stack) werden teilweise dadurch ausgeglichen, daß man auch mit microStudio und Brython Zugriff auf JavaScript-Bibliotheken wie zum Beispiel PIXI.js oder Matter.js hat. Damit kann man dann schon eine ganze Menge anstellen. Vor meiner jüngsten Entdeckung von PyScript mit Proseco (siehe unten) war microStudio mit Brython mein Favorit, wenn es um meine Versuche ging, Python-Versionen der Programme aus Daniel Shiffmans genialem Buch »The Nature of Code« zu schreiben. Und für die Entwicklung kleiner, webtauglicher Spiele ist microStudio mit Brython sowieso immer noch eine gute Wahl.

PyScript

Das freie (Apache-2.0-Lizenz) Framework PyScript, mit dem Benutzer umfangreiche Python-Anwendungen im Browser erstellen können, und das von einem Team bei Anaconda entwickelt wird, hatte ich lange links liegen lassen, weil mir eine »Killer-Applikation« fehlte. Bis ich gestern bei der Vorbereitung für diesen Beitrag auf der Seite »Resources for teaching programming for artists, designers and architects« von Alexandre Villares das Modul Proseco entdeckte.

PyScript und Processing (mit Proseco)

Proceso ist ein Python-Paket für kreatives Programmieren im Web. Der Fokus liegt darauf, Programmieren für Künstler, Designer, Pädagogen, Anfänger und alle anderen zugänglich zu machen. Das Paket bietet eine Python-Schnittstelle zur p5.js-Bibliothek und ist stark von Py5 inspiriert. Proceso ist für Pyodide-basierte Umgebungen mit Schwerpunkt auf PyScript konzipiert.

Auch Proseco kann man sowohl in der Cloud (zum Beispiel bei Anaconda – Vorsicht! Wieder ein amerikanischer Server!), aber auch in einer selbstgehosteten Wolke oder in einer lokalen Umgebung zum Beispiel mit Visual Studio Code betreiben. Es kann mit pip install proseco auf dem eigenen Rechner installiert werden.

Proseco scheint so etwas zu sein, von dem ich die letzten Monate geträumt habe: Py5 im Browser. Ich kann es kaum erwarten, erste Tests zu fahren, um festzustellen, ob Proseco dieses Versprechen auch wirklich einlöst. Ich habe also wieder zu tun. Still digging!


Bild: Python with Glasses, erstellt mit OpenArt.ai. Prompt: »Franco-Belgian Comic Style. Illustration of a green python with glasses and a pointer in front of a chart with diagrams in a crowded office. Large shelves with many books on the walls. It’s a sunny morning«. Modell: Flux (Pro), Style: None.