Python-Pakete lassen sich ab sofort als WebAssembly-Wheels direkt auf PyPI veröffentlichen. Damit fällt ein jahrelanger Flaschenhals im Python-im-Browser-Ökosystem weg.
drweb.de als bevorzugte Quelle auf Google hinzufügenQualitätsgeprüfte Inhalte direkt in Google News & DiscoverJetzt hinzufügenPyodide 314.0 setzt PEP 783 in die Praxis um, den vielleicht wichtigsten Standard in der Geschichte von Python im Browser. Statt rund 300 Pakete selbst zu pflegen und zu hosten, übergibt das Projekt die Verantwortung an die Paket-Maintainer, genau wie bei nativen Wheels für Linux, macOS oder Windows.
Das Wichtigste in Kürze
- PEP 783 ist offiziell angenommen und definiert die Emscripten-Paketierung für Python.
- Paket-Maintainer können Pyodide-Wheels jetzt selbst auf PyPI hochladen, ohne manuelle Prüfung durch das Pyodide-Team.
- Das Versionsschema springt von 0.29 auf 314.0 und folgt damit der Python-Version 3.14.
- Standardbibliotheken wie sqlite3 und lzma sind wieder fest an Bord.
Engpass beseitigt. Bislang musste das Pyodide-Team jedes browserfähige Paket selbst bauen, prüfen und ausliefern, über 300 an der Zahl. Jede neue Bibliothek brauchte eine manuelle Freigabe, was die Community ausbremste. Mit der Annahme von PEP 783 entfällt dieser Schritt. Das Build-Werkzeug cibuildwheel unterstützt die neuen PyEmscripten-ABIs bereits.
Warum springt die Version von 0.29 auf 314?

Neue Logik. Der ungewohnte Sprung hat einen Grund. Pyodide koppelt seine Versionsnummer künftig direkt an die Python-Version, 314.x steht für Python 3.14. Binär-inkompatible Änderungen fallen damit nur noch einmal jährlich an, im Takt der Python-Updates. Pakete, die für eine Python-Version gebaut sind, bleiben so über mehrere Pyodide-Releases hinweg nutzbar. Diese erste Ausgabe im neuen Schema liefert Python 3.14.2 und Emscripten 5.0.3.
Komfort statt Sparsamkeit. Früher lagerte Pyodide Bibliotheken wie ssl, sqlite3 und lzma aus, um die Startzeit kurz zu halten. Diese Module gehören nun wieder zum festen Bestand. Der Download wächst dadurch etwas, dafür entfällt das separate Nachladen. OpenSSL bleibt allerdings draußen, weil es die Distribution zu stark aufgebläht hätte. Das ssl-Modul nutzt jetzt eine eigene, schlanke Implementierung ohne echte TLS-Unterstützung.
Python im Browser war lange ein Versprechen mit Sternchen. Wer eigene Pakete einbinden wollte, stieß schnell an Grenzen. Dieser Schritt macht aus der Nische eine echte Plattform.
— Michael Dobler, Herausgeber Dr. Web
Was ändert sich für Entwickler konkret?
Modulwechsel. Pyodide ist jetzt ein nativer ES-Modul. Die Datei pyodide.asm.js heißt nun pyodide.asm.mjs, klassische Worker ohne Modul-Typ funktionieren nicht mehr. Wer die Datei direkt referenziert, muss seine Bundler-Konfiguration anpassen. Für die Mehrheit, die loadPyodide() nutzt, ändert sich nichts.
Mehr Brücken. Die Verzahnung zwischen JavaScript und Python wird enger. Ein neuer Typ JsBigInt sorgt dafür, dass große Zahlen sauber zwischen beiden Welten wandern, ohne Präzisionsverlust oberhalb von 2^53. Dazu kommt experimenteller Socket-Support unter Node.js, der echte Datenbankverbindungen etwa zu MySQL oder PostgreSQL erlaubt. Wer tiefer in die Sprache einsteigen will, findet bei uns Wege, JavaScript spielerisch zu lernen.
Praxiswert. Für Teams in der DACH-Region senkt das die Hürde, Python-Logik direkt im Browser laufen zu lassen, von Datenanalyse bis zu interaktiven Lerntools.