Python 3.15 bringt UTF-8 als Standard und einen schnelleren JIT-Compiler

Python 3.15.0

Python 3.15.0 ist da: 5.643 Commits von 1.012 Beitragenden. Die wichtigsten Neuerungen sind der sentinel-Typ, UTF-8 als Standardkodierung, explizite Lazy Imports für schnelleren Start, frozendict und ein deutlich verbesserter experimenteller JIT-Compiler, der auf x86-64 Linux 7–8 % und auf AArch64 macOS 11–12 % schneller ist. Die offiziellen Windows-Binaries nutzen jetzt den Tail-Calling-Interpreter, die macOS-Binaries unterstützen standardmäßig Free-Threading.

Du wachst im Startup Foyer auf, irgendwo im Interpreter, und arbeitest dich zum Release Gate vor. Unterwegs gibt es achtzehn Rätsel, und jedes einzelne ist ein echtes 3.15-Feature, das du tatsächlich benutzen musst.
  1. simonw

    Als Maintainer einer ganzen Reihe von Open-Source-Python-Bibliotheken ist mein Lieblingsaspekt an einem neuen Python-Release, dass es das Ende der Unterstützung für ein älteres bedeutet. In diesem Fall ist das Python 3.10 ... was bedeutet, dass meine Bibliotheken, die darauf abzielen, jede aktuelle Python-Version zu unterstützen, endlich damit beginnen können, Funktionen aus Python 3.11 zu nutzen!

    Hier ist das Dokument "What's new in Python 3.11": https://docs.python.org/3/whatsnew/3.11.html

  2. ngoldbaum

    Mein Hauptfeature ist die neue "abi3t"-stabile ABI für den Free-Threaded-Build. Während Petr Viktorin den Großteil der CPython-Implementierung gemacht hat, habe ich versucht, sicherzustellen, dass die Ökosystem-Unterstützung bereit ist. Es war ein lohnendes, aber ziemlich herausforderndes Projekt, sicherzustellen, dass alles funktioniert. Es gab einige späte Nächte vor der Beta1-Veröffentlichung, als wir ein Windows-spezifisches Problem fanden, das behoben werden musste.

    Ich bin besonders stolz darauf, dass das cryptography-Projekt bereits ein einzelnes abi3.abi3t-Wheel für jede Plattform auf Python 3.15 oder neuer ausliefert. Der GIL-fähige Build und der Free-Threaded-Build können jetzt dasselbe Wheel verwenden, weil PyObject undurchsichtig ist.

    Wenn du mehr darüber erfahren möchtest, habe ich dieses Jahr auf der EuroPython einen Vortrag über Pythons ABI und den Weg zum heutigen Bauen und Veröffentlichen von abi3t gehalten. Siehe https://youtu.be/An8lO29SxXE.

  3. zahlman

    Der XZ-komprimierte Quell-Tarball ist etwa anderthalbmal so groß wie der für 3.14. Was ist passiert?

    Edit: Wenn ich ein bisschen tiefer grabe, sind viele Dinge insgesamt etwas größer, wie man erwarten würde; aber bemerkenswert ist, dass der Dokumentationsordner zwei animierte GIFs mit über 10 MB hinzugewonnen hat (die sich vermutlich auch mit XZ nicht viel weiter komprimieren lassen), die "tachyon" demonstrieren (was sich vermutlich auf den neuen Sampling-Profiler bezieht, https://docs.python.org/3.15/library/profiling.sampling.html). Diese scheinen Bildschirmaufnahmen von Terminal-Sitzungen zu sein, die gut genug funktionieren, um zu veranschaulichen, wie eine TUI aussieht, aber wahrscheinlich nicht allzu informativ darüber sind, wie man sie benutzt. Ich hätte viel lieber SVG-Diagramme auf Basis statischer Screenshots gehabt.

  4. wg0

    Das mag viele ärgern, aber ich sehe für die Zukunft nur folgende Sprachen überleben:

    1. Typescript + Javascript

    2. Rust.

    3. Python - wegen Data Science und interaktiven Apps.

    Im Grunde wird alles, was in Rust umgeschrieben werden kann, mit oder ohne KI, im kommenden Jahrzehnt in Rust umgeschrieben werden, mit oder ohne KI.

    Berühmte Fälle:

    1. Einige Backends bei 37 signals von Ruby zu Rust.

    2. Bun von Zig zu Rust.

    3. Git im Übergang.

    4. Mold linker von C zu Rust.

    5. Biome

    6. TailwindCSS CLI

    Und vieles, vieles mehr. Sogar der Python-Interpreter befindet sich im Prozess, Rust als Hauptsprache zu verwenden, wenn ich mich nicht irre.

    [0]. https://github.com/kevincouton/awesome-rust-migrations#1

  5. kbumsik

    > PEP 810: Explizite Lazy Imports für schnellere Startzeiten

    Ja, Lazy Import! Endlich!

Mehr von diesem Tag

2026-10-09