Python 3.15.0 ist seit dem 9. Oktober 2026 als stabile Hauptversion verfügbar. Die Release-Seite nennt 5.643 Änderungen von 1.012 Mitwirkenden. Für ein Upgrade sind nicht alle Neuerungen gleich riskant: Besonders die Standardkodierung, der Zeitpunkt von Imports und binäre Abhängigkeiten verdienen gezielte Tests.

Die sichtbarste Standardänderung ist UTF-8. Textoperationen ohne ausdrücklich angegebene Kodierung verwenden nun grundsätzlich UTF-8 statt einer vom Betriebssystem abhängigen Regionaleinstellung. Das macht Programme zwischen Plattformen berechenbarer. Vorhandene Dateien werden aber nicht umkodiert. Eine ältere Datei in Windows-1252 kann deshalb nach dem Upgrade fehlschlagen, obwohl reine ASCII-Testdaten problemlos funktionieren.

Projekte sollten open-Aufrufe ohne encoding-Angabe suchen und echte Import- und Exportdateien mit Umlauten oder Sonderzeichen testen. Für bekannte Altbestände bleibt eine explizite Angabe wie cp1252 nötig. Wer bewusst die Systemkodierung benötigt, kann encoding="locale" angeben. Die Warnoption für fehlende Kodierungsangaben hilft, stillschweigende Annahmen aufzuspüren.

Explizit verzögerte Imports sind neu, aber optional. Mit lazy import wird ein Modul erst bei der ersten tatsächlichen Verwendung geladen. Das kann den Start eines Kommandozeilenwerkzeugs beschleunigen. Zugleich treten Importfehler und Seiteneffekte später auf. Tests müssen deshalb auch Codepfade ausführen, die selten genutzte Module erstmals anfordern; ein erfolgreicher Programmstart allein reicht nicht.

Neue eingebaute Typen lösen häufige API-Probleme. frozendict bietet eine unveränderliche Zuordnung, schützt aber enthaltene veränderliche Objekte nicht automatisch. sentinel erzeugt klar benannte Marker für den Unterschied zwischen „Argument fehlt“ und einem ausdrücklich übergebenen None. Beide Funktionen erleichtern saubere Schnittstellen, verlangen aber Tests mit Serialisierung, Typprüfung und abhängigen Bibliotheken.

Der Just-in-time-Compiler (JIT) wurde verbessert, bleibt jedoch experimentell und standardmäßig ausgeschaltet. Die offiziellen Durchschnittswerte beziehen sich auf bestimmte Architekturen und Vergleichskonfigurationen. Einzelne Programme können anders reagieren oder sogar langsamer werden. Eine allgemeine Leistungsaussage ohne eigene Messung wäre daher irreführend.

Ein vorsichtiges Upgrade kombiniert mehrere Ebenen: reale Textdateien prüfen, Import-Seiteneffekte beobachten, native Erweiterungen neu bauen, die unterstützten Versionen aller Abhängigkeiten kontrollieren und optionale Laufzeitfunktionen getrennt benchmarken. So wird aus einer langen Neuerungsliste ein nachvollziehbarer Migrationsplan.