Python 3.15.0 erscheint mit Lazy Imports und frozendict
Python 3.15.0 erschien am 9. Oktober mit 5.643 Commits von 1.012 Beitragenden: Lazy Imports, ein eingebautes frozendict, UTF-8 als Standard und ein schnellerer JIT.
4 Min. Lesezeit

Die Zahlen
- commits since Python 3.14
- 5,643
- contributors to the release
- 1,012
- JIT speedup on x86-64 Linux, geometric mean
- 7-8%
- roughly when security updates end, per PEP 602
- 2031
Python 3.15.0 ist am 9. Oktober 2026 erschienen, das jährliche Feature-Release der Sprache. Es bringt explizite Lazy Imports, einen eingebauten frozendict-Typ und UTF-8 als Standard-Textkodierung. „Python 3.15.0 ist das neueste Major-Release der Programmiersprache Python“, schrieb Release-Manager Hugo van Kemenade auf Python Insider. In das Release flossen 5.643 Commits von 1.012 Beitragenden. Es kommt eine Woche später als ursprünglich geplant, nachdem ein überraschender dritter Release Candidate späte Fehler bei Lazy Imports behoben hatte.
Die wichtigsten Neuerungen
Jede große Änderung stammt aus einem PEP, einem Python Enhancement Proposal, dem Designdokument für eine Funktion. Die Release Notes nennen diese:
| PEP | Neuerung | Was sie bewirkt |
|---|---|---|
| 810 | Explizite Lazy Imports | Lässt Code das Laden eines Moduls bis zur ersten Nutzung aufschieben, für einen schnelleren Start |
| 814 | frozendict | Ein eingebautes Dictionary, das sich nach dem Erzeugen nicht mehr ändern lässt |
| 661 | Sentinel-Typ | Ein eingebauter Typ für eindeutige Markierungswerte |
| 686 | UTF-8 als Standard | Python liest und schreibt Text als UTF-8, sofern nicht anders angegeben |
| 798 | Entpacken in Comprehensions | Erlaubt Entpacken innerhalb von Comprehensions |
| 829 | Startdateien für Pakete | Neue Startkonfigurationsdateien für Pakete |
| 799 | Profiling-Paket | Fügt den Sampling-Profiler Tachyon hinzu |
| 803, 820, 793 | Stabiles ABI für Free-Threading | Eine kompilierte Erweiterung kann über Free-Threaded-Builds hinweg funktionieren |
| 831 | Frame Pointer | Standardmäßig in Builds eingeschaltet |
Auch bei der Typisierung gibt es drei Änderungen: die PEPs 728, 747 und 800. Laut der What's-New-Seite wurden außerdem der experimentelle JIT-Compiler, die Fehlermeldungen und die Farben in der Kommandozeile verbessert.
Die Umstellung auf UTF-8 wirkt sich laut Linux Compatible am stärksten unter Windows aus. Code, der sich auf die alte Standardkodierung verlassen hat, kann mit PYTHONUTF8=0 zurückschalten.
Schneller, aber nicht überall
Der JIT, ein Compiler, der häufig ausgeführten Python-Code zur Laufzeit in Maschinencode übersetzt, ist jetzt schneller. Python Insider nennt diese Gewinne im geometrischen Mittel:
| Plattform | JIT-Gewinn |
|---|---|
| x86-64 Linux | 7-8 % gegenüber dem Standard-Interpreter |
| AArch64 macOS | 11-12 % gegenüber dem Tail-Calling-Interpreter |
Die Ergebnisse schwanken je nach Workload stark. Einzelne Benchmarks reichen laut Linux Compatible von etwa 15 % langsamer bis zu mehr als 100 % schneller.
Auch die offiziellen Installer haben sich geändert. Die 64-Bit-Builds für Windows nutzen jetzt den Tail-Calling-Interpreter, eine schnellere Art, die Hauptschleife von Python auszuführen. Linux Compatible beziffert diesen Gewinn auf 15-20 %, bei kleinen, lang laufenden reinen Python-Skripten auf bis zu 40 %. Die offiziellen macOS-Installer enthalten jetzt standardmäßig Unterstützung für Free-Threading. Mit Free-Threading kann Python Code auf mehreren CPU-Kernen gleichzeitig ausführen, ohne den Global Interpreter Lock.
Bekanntes Problem unter macOS 27
Für Mac-Nutzer gibt es eine Warnung. Unter macOS 27.0 können IDLE und andere tkinter-Apps „hängen bleiben, wenn ein Menübefehl der Anwendung verwendet wird, der einen Dialog öffnet“, schreibt Python Insider. Die App muss dann zwangsweise beendet werden.
Das Python-Team führt das auf eine Änderung im Betriebssystem zurück und geht davon aus, dass alle Versionen von Tk betroffen sind, dem Toolkit, das tkinter nutzt. Das Problem wird als Issue #158053 verfolgt. Die Release-Seite empfiehlt, mit macOS 27.0 zu warten, wenn du auf Tk-Apps angewiesen bist.
Was als veraltet markiert ist
Drei Dinge sind laut den Release Notes und Linux Compatible auf dem Weg nach draußen:
- Das reine Python-Modul
profileist veraltet und wird in Python 3.17 entfernt.cProfilebleibt. - Zeilen in
.pth-Dateien, die Code ausführen, sind veraltet, zugunsten der neuen Startdateien aus PEP 829. - Die C-Funktionen
PyGILState_*sind soft-deprecated, aber nicht entfernt.
Python 3.15 erhält zwei Jahre lang Fehlerkorrekturen und danach bis etwa Oktober 2031 Sicherheitskorrekturen, berichtet Linux Compatible, gemäß dem Zeitplan aus PEP 602.
Was das für Entwickler bedeutet
- Probiere Lazy Imports bei langsam startenden Tools aus. Kommandozeilen-Tools und Apps mit schweren Importen profitieren am meisten. Teste jedes Modul, das darauf angewiesen ist, dass beim Import Code läuft, denn das Aufschieben des Imports ändert, wann dieser Code läuft.
- Prüfe die Textverarbeitung unter Windows. UTF-8 ist jetzt der Standard. Lass deine Tests für Dateiein- und -ausgabe unter Windows laufen und nutze
PYTHONUTF8=0nur als Notlösung. - Nutze frozendict für feste Einstellungen. Ein unveränderliches Dictionary ist für Konfigurationen sicherer und lässt sich dort einsetzen, wo ein hashbarer Wert nötig ist.
- Führe Benchmarks durch, bevor du dich auf den JIT verlässt. Die durchschnittlichen Gewinne sind moderat, und manche Workloads werden langsamer. Miss deinen eigenen Code.
- Warte mit macOS 27.0, wenn du tkinter nutzt. IDLE und Tk-Apps können hängen bleiben, bis der Fehler behoben ist.
- Steig jetzt von
profileum. Es verschwindet in Python 3.17, also wechsle zucProfileoder zum neuen Profiling-Paket.
Bevor du Produktionssysteme aktualisierst, prüfe, ob deine wichtigsten Abhängigkeiten 3.15 unterstützen.
Quellen
- Python 3.15.0 final is here! - Python Insider
- Python Release Python 3.15.0 - Python.org
- Python 3.15.0 (final) is here! - Discussions on Python.org
- What's new in Python 3.15 - Python documentation
- Python 3.15.0 Is Out: Lazy Imports, frozendict, and Faster Speeds - Linux Compatible
Ähnliche Artikel

Finales Python 3.15.0 kommt nach überraschendem rc3 erst am 9. Oktober
Python 3.15.0rc3 erschien am 2. Oktober, um späte Fehler bei Lazy Imports zu beheben. Die finale Version von Python 3.15.0 verschiebt sich dadurch um eine Woche auf den 9. Oktober 2026.

Python 3.10 erreicht das Supportende, fünf Releases beheben 8 CVEs
Python 3.10.22 ist das letzte Release von 3.10: Der Zweig hat am 1. Oktober 2026 sein Supportende erreicht, während 3.11 bis 3.14 Korrekturen für bis zu acht CVEs erhielten.

Python Language Summit 2026 debattiert Rust und einen neuen GC
Die Berichte vom Python Language Summit 2026 sind da: 47 Kernentwickler berieten über Rust in CPython, einen neuen Garbage Collector, einen std-Namespace und schnelleren Start.