Python 3.12.6
釋出日期: 2024年9月6日
這是 Python 3.12 的第六個維護版本。
Python 3.12 是 Python 程式語言的最新主要版本,其中包含許多新功能和最佳化。3.12.6 是最新的維護版本,自 3.12.5 以來,包含了約 90 個錯誤修復、構建改進和文件變更。這是一個為解決以下安全問題而釋出的加速版本。
- gh-123678 和 gh-116741:將捆綁的 libexpat 升級到 2.6.3,以修復 CVE-2024-28757、CVE-2024-45490、CVE-2024-45491 和 CVE-2024-45492。
- gh-123067:修復了
http.cookies在解析帶有反斜槓的"引號引起來的 cookie 值時存在的二次複雜度問題。修復了 CVE-2024-7592。 - gh-121285:從 tarfile 對
hdrcharset、PAX 和 GNU稀疏檔案頭的解析中移除了回溯操作。對應 CVE-2024-6232。 - gh-102988:當遇到無效電子郵件地址時,
email.utils.getaddresses()和email.utils.parseaddr()現在會在更多情況下返回二元組('', ''),而不是可能不準確的值。為這兩個函式添加了可選的 strict 引數:使用strict=False可獲得舊的行為,接受格式錯誤的輸入。可以使用getattr(email.utils, 'supports_strict_parsing', False)來檢查 strict 引數是否可用。這改進了對 CVE-2023-27043 的修復。 - gh-123270:對
zipfile.Path中的名稱進行清理,以避免無限迴圈(gh-122905),同時不破壞使用合法字元的內容。對應 CVE-2024-8088。
此外,正如在 3.12 的上一個版本中提到的,此版本 停止了對 macOS 10.9 至 10.12 版本的支援。自 2019 年以來,蘋果已不再支援低於 10.13 的 macOS 版本,維持對這些舊版本的支援變得過於困難。(所有 Python 3.13 版本均已停止對它們的支援。)
與 3.11 相比,3.12 系列的主要新功能
新特性
- 更靈活的 f-string 解析,允許許多以前不允許的寫法 (PEP 701)。
- 在 Python 程式碼中支援緩衝區協議 (PEP 688)。
- 新的除錯/分析 API (PEP 669)。
- 支援帶有獨立全域性直譯器鎖的隔離子直譯器 (PEP 684)。
- 錯誤訊息的進一步改進。更多可能由拼寫錯誤引起的異常現在會向用戶提供建議。
- 支援 Linux
perf分析器在追蹤資訊中報告 Python 函式名。 - 許多大大小小的效能改進(例如 PEP 709 和對 BOLT 二進位制最佳化器的支援),預計整體效能提升 5%。
型別註解
- 用於泛型類的新型別註解語法 (PEP 695)。
- 用於方法的新的 @override 裝飾器 (PEP 698)。
棄用
- 根據 PEP 623,unicode 物件的 C 實現中已棄用的
wstr和wstr_length成員已被移除。 - 在
unittest模組中,一些長期棄用的方法和類已被移除。(它們自 Python 3.1 或 3.2 起就已被棄用)。 - 已棄用的
smtpd和distutils模組已被移除(參見 PEP 594 和 PEP 632)。setuptools包繼續提供distutils模組。 - 一些其他陳舊、損壞和已棄用的函式、類和方法已被移除。
- 字串中無效的反斜槓轉義序列現在會發出
SyntaxWarning警告,而不是DeprecationWarning,使其更加顯眼。(它們將來會成為語法錯誤。) - 為準備效能增強,整數的內部表示已發生變化。(這不應影響大多數使用者,因為它是一個內部細節,但可能會給 Cython 生成的程式碼帶來問題。)
有關 Python 3.12 變更的更多詳情,請參見“Python 3.12 的新變化”。
更多資源
- 線上文件.
- PEP 693,Python 3.12 釋出時間表。
- 透過 GitHub Issues 報告錯誤。
- 直接資助 Python 或透過 GitHub Sponsors,並支援 Python 社群。
檔案
| 版本 | 作業系統 | 描述 | MD5 校驗和 | 檔案大小 | Sigstore | SBOM | GPG | |
|---|---|---|---|---|---|---|---|---|
| Gzip 壓縮的原始碼包 | 原始碼釋出版 | c2f1dd5c8807ee50b778684b7958ee28 | 25.8 MB | .sigstore | SPDX | SIG | ||
| XZ 壓縮的原始碼包 | 原始碼釋出版 | cb669514937d3e894e74081627722aa5 | 19.5 MB | .sigstore | SPDX | SIG | ||
| macOS 64 位 universal2 安裝程式 | macOS | 適用於 macOS 10.13 及更高版本 | 9fe25ae8e0dfea2854e6bce62e69a3dd | 43.2 MB | .sigstore | SIG | ||
| Windows 安裝程式 (64位) | Windows | 推薦 | d8548aa7609a762ba66f62eeb2ca862d | 25.3 MB | .sigstore | SPDX | SIG | |
| Windows 安裝程式 (32位) | Windows | 9b4c59154c46444e082266d8bd3a6429 | 24.1 MB | .sigstore | SPDX | SIG | ||
| Windows 安裝程式 (ARM64) | Windows | 實驗性 | 4ae3dfd4a32963ec6e6578890d97b19c | 24.6 MB | .sigstore | SPDX | SIG | |
| Windows 可嵌入包 (64位) | Windows | ae256f31ee4700eba679802233bff3e9 | 10.5 MB | .sigstore | SPDX | SIG | ||
| Windows 可嵌入包 (32位) | Windows | b6eecbdfd865e4a3ae8bed93b9f2cd95 | 9.4 MB | .sigstore | SPDX | SIG | ||
| Windows 可嵌入包 (ARM64) | Windows | e6c889dd2ae2dacfbfd9cb5faeb7aefe | 9.8 MB | .sigstore | SPDX | SIG | ||
