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 |