Python 3.12.6
Erscheinungsdatum: 6. September 2024
Dies ist die sechste Wartungsversion von Python 3.12.
Python 3.12 ist die neueste Hauptversion der Programmiersprache Python und enthält viele neue Funktionen und Optimierungen. 3.12.6 ist die neueste Wartungsversion und enthält etwa 90 Fehlerbehebungen, Build-Verbesserungen und Dokumentationsänderungen seit 3.12.5. Dies ist eine beschleunigte Veröffentlichung, um die folgenden Sicherheitsprobleme zu beheben.
- gh-123678 und gh-116741: Upgrade der gebündelten libexpat auf 2.6.3 zur Behebung von CVE-2024-28757, CVE-2024-45490, CVE-2024-45491 und CVE-2024-45492.
- gh-123067: Behebung der quadratischen Komplexität beim Parsen von "-gekennzeichneten Cookie-Werten mit Backslashes durch
http.cookies. Behebt CVE-2024-7592. - gh-121285: Entfernung von Backtracking aus der Tarfile-Header-Analyse für
hdrcharset, PAX und GNU Sparse-Header. Das ist CVE-2024-6232. - gh-102988:
email.utils.getaddresses()undemail.utils.parseaddr()geben nun in mehr Situationen, in denen ungültige E-Mail-Adressen angetroffen werden, 2-Tupel von('', '')zurück, anstatt potenziell ungenaue Werte. Hinzufügen eines optionalen strict-Parameters zu diesen beiden Funktionen: Verwenden Siestrict=False, um das alte Verhalten zu erhalten und fehlerhafte Eingaben zu akzeptieren.getattr(email.utils, 'supports_strict_parsing', False)kann verwendet werden, um zu prüfen, ob der strict-Parameter verfügbar ist. Dies verbessert die Korrektur von CVE-2023-27043. - gh-123270: Bereinigung von Namen in
zipfile.Path, um Endlosschleifen (gh-122905) zu vermeiden, ohne Inhalte mit legitimen Zeichen zu beeinträchtigen. Das ist CVE-2024-8088.
Außerdem, wie in der vorherigen Version von 3.12 erwähnt, entfernt diese Version die Unterstützung für macOS-Versionen 10.9 bis 10.12. macOS-Versionen älter als 10.13 werden seit 2019 nicht mehr von Apple unterstützt, und die Aufrechterhaltung der Unterstützung für sie ist zu schwierig geworden. (Alle Versionen von Python 3.13 haben sie bereits entfernt.)
Hauptneuerungen der Serie 3.12 im Vergleich zu 3.11
Neue Funktionen
- Flexiblere f-String-Analyse, die vieles erlaubt, was zuvor nicht zulässig war (PEP 701).
- Unterstützung für das Buffer-Protokoll in Python-Code (PEP 688).
- Eine neue API für Debugging/Profiling (PEP 669).
- Unterstützung für isolierte Sub-Interpreter mit separaten Global Interpreter Locks (PEP 684).
- Noch verbesserte Fehlermeldungen. Mehr Ausnahmen, die potenziell durch Tippfehler verursacht werden, machen dem Benutzer nun Vorschläge.
- Unterstützung für den Linux
perfProfiler zur Meldung von Python-Funktionsnamen in Spuren. - Viele große und kleine Performance-Verbesserungen (wie PEP 709 und Unterstützung für den BOLT Binär-Optimizer), die eine geschätzte allgemeine Leistungssteigerung von 5 % ergeben.
Typ-Annotationen
- Neue Typ-Annotations-Syntax für generische Klassen (PEP 695).
- Neuer
override-Decorator für Methoden (PEP 698).
Veraltete Funktionen
- Die veralteten Member
wstrundwstr_lengthder C-Implementierung von Unicode-Objekten wurden entfernt, gemäß PEP 623. - Im Modul
unittestwurden eine Reihe von lange veralteten Methoden und Klassen entfernt. (Sie waren seit Python 3.1 oder 3.2 veraltet.) - Die veralteten Module
smtpdunddistutilswurden entfernt (siehe PEP 594 und PEP 632. Das Paketsetuptoolsstellt weiterhin das Moduldistutilsbereit. - Eine Reihe weiterer alter, fehlerhafter und veralteter Funktionen, Klassen und Methoden wurden entfernt.
- Ungültige Backslash-Escape-Sequenzen in Zeichenketten warnen nun mit
SyntaxWarninganstelle vonDeprecationWarning, wodurch sie besser sichtbar werden. (Sie werden in Zukunft zu Syntaxfehlern.) - Die interne Darstellung von ganzen Zahlen wurde zur Vorbereitung auf Leistungsverbesserungen geändert. (Dies sollte die meisten Benutzer nicht beeinträchtigen, da es sich um ein internes Detail handelt, es kann jedoch Probleme für von Cython generierten Code verursachen.)
Weitere Details zu den Änderungen in Python 3.12 finden Sie unter Was ist neu in Python 3.12.
Weitere Ressourcen
- Online-Dokumentation.
- PEP 693, der Zeitplan für die Veröffentlichung von Python 3.12.
- Melden Sie Fehler über GitHub Issues.
- Unterstützen Sie Python direkt oder über GitHub Sponsors und unterstützen Sie die Python-Community.
Dateien
| Version | Betriebssystem | Beschreibung | MD5 Summe | Dateigröße | Sigstore | SBOM | GPG | |
|---|---|---|---|---|---|---|---|---|
| Gzip-komprimiertes Quell-Tarball | Quellcode-Veröffentlichung | c2f1dd5c8807ee50b778684b7958ee28 | 25,8 MB | .sigstore | SPDX | SIG | ||
| XZ-komprimierter Quell-Tarball | Quellcode-Veröffentlichung | cb669514937d3e894e74081627722aa5 | 19,5 MB | .sigstore | SPDX | SIG | ||
| macOS 64-Bit Universal2-Installer | macOS | für macOS 10.13 und neuer | 9fe25ae8e0dfea2854e6bce62e69a3dd | 43,2 MB | .sigstore | SIG | ||
| Windows-Installer (64-Bit) | Windows | Empfohlen | d8548aa7609a762ba66f62eeb2ca862d | 25,3 MB | .sigstore | SPDX | SIG | |
| Windows-Installer (32-Bit) | Windows | 9b4c59154c46444e082266d8bd3a6429 | 24,1 MB | .sigstore | SPDX | SIG | ||
| Windows-Installer (ARM64) | Windows | Experimentell | 4ae3dfd4a32963ec6e6578890d97b19c | 24,6 MB | .sigstore | SPDX | SIG | |
| Windows einbettbares Paket (64-Bit) | Windows | ae256f31ee4700eba679802233bff3e9 | 10.5 MB | .sigstore | SPDX | SIG | ||
| Windows einbettbares Paket (32-Bit) | Windows | b6eecbdfd865e4a3ae8bed93b9f2cd95 | 9.4 MB | .sigstore | SPDX | SIG | ||
| Windows einbettbares Paket (ARM64) | Windows | e6c889dd2ae2dacfbfd9cb5faeb7aefe | 9.8 MB | .sigstore | SPDX | SIG | ||
