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 年以來,Apple 不再支援 macOS 10.13 之前的版本,維護對它們的支援變得過於困難。(所有版本的 Python 3.13 都已經放棄了對它們的支援。)
與 3.11 相比,3.12 系列的主要新功能
新功能
- 更靈活的 f-字串解析,允許許多以前不允許的事情 (PEP 701)。
- 在 Python 程式碼中支援緩衝區協議 (PEP 688)。
- 新的除錯/分析 API (PEP 669)。
- 支援具有獨立全域性直譯器鎖的隔離子直譯器 (PEP 684)。
- 更加改進的錯誤訊息。現在,更多由拼寫錯誤引起的異常會向用戶提供建議。
- 支援 Linux
perf
分析器以在跟蹤中報告 Python 函式名稱。 - 許多大大小小的效能改進(如 PEP 709 和對 BOLT 二進位制最佳化器的支援),預計總體效能提高 5%。
型別註解
棄用
- 根據 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 校驗和 | 檔案大小 | GPG | Sigstore | SBOM | |
---|---|---|---|---|---|---|---|---|
Gzipped 原始碼 tarball | 原始碼釋出 | c2f1dd5c8807ee50b778684b7958ee28 | 25.8 MB | SIG | .sigstore | SPDX | ||
XZ 壓縮的原始碼 tarball | 原始碼釋出 | cb669514937d3e894e74081627722aa5 | 19.5 MB | SIG | .sigstore | SPDX | ||
macOS 64 位 universal2 安裝程式 | macOS | 適用於 macOS 10.13 及更高版本 | 9fe25ae8e0dfea2854e6bce62e69a3dd | 43.2 MB | SIG | .sigstore | ||
Windows 安裝程式 (64 位) | Windows | 推薦 | d8548aa7609a762ba66f62eeb2ca862d | 25.3 MB | SIG | .sigstore | SPDX | |
Windows 安裝程式 (32 位) | Windows | 9b4c59154c46444e082266d8bd3a6429 | 24.1 MB | SIG | .sigstore | SPDX | ||
Windows 安裝程式 (ARM64) | Windows | 實驗性 | 4ae3dfd4a32963ec6e6578890d97b19c | 24.6 MB | SIG | .sigstore | SPDX | |
Windows 可嵌入軟體包 (64 位) | Windows | ae256f31ee4700eba679802233bff3e9 | 10.5 MB | SIG | .sigstore | SPDX | ||
Windows 可嵌入軟體包 (32 位) | Windows | b6eecbdfd865e4a3ae8bed93b9f2cd95 | 9.4 MB | SIG | .sigstore | SPDX | ||
Windows 可嵌入軟體包 (ARM64) | Windows | e6c889dd2ae2dacfbfd9cb5faeb7aefe | 9.8 MB | SIG | .sigstore | SPDX |