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 |