Python(Python)3.15.0 于 2026 年 10 月 9 日发布,是 Python 编程语言的最新主要版本,也是稳定版本,相比 Python 3.14 包含许多新特性和优化,整个版本包含来自 1012 名贡献者的 5643 次提交。与 Python 3.14 相比,3.15 系列的主要新特性包括解释器改进:PEP 661 新增 sentinel 内置类型,PEP 686 让 Python 默认使用 UTF-8 编码,PEP 798 支持在推导式中解包,PEP 810 引入显式延迟导入以加快启动时间,以及 PEP 814 等更改。
正文
发布日期:2026 年 10 月 9 日

这是 Python 3.15.0 的稳定版本
Python 3.15.0 是 Python 编程语言最新的主要版本,相比 Python 3.14 包含许多新特性和优化,来自 1,012 名贡献者的 5,643 次提交。
3.15 系列相较于 3.14 的主要新特性
Python 3.15 中的一些主要新特性和变化包括:
解释器改进
- PEP 661:新增
sentinel内置类型 - PEP 686:Python 现在默认使用 UTF-8 编码
- PEP 798:推导式中的解包
- PEP 810:显式惰性导入,以加快启动速度
- PEP 814:新增
frozendict内置类型 - PEP 829:包启动配置文件
- 实验性 JIT 编译器 已大幅升级:在 x86-64 Linux 上相比标准解释器有 7-8% 的几何平均性能提升,在 AArch64 macOS 上相比尾调用解释器有 11-12% 的加速
- 改进的错误消息
标准库的显著改进
新的类型标注特性
C API 改进
- PEP 782:新的
PyBytesWriterC API,用于创建 Python bytes 对象 - PEP 788:在 C API 中提供防止终结操作的保护
- PEP 803、820、793:面向自由线程构建的稳定 ABI 及相关 C API
构建变更
- PEP 831:默认启用帧指针(frame pointers),以提升系统级可观测性
发布变更
- 官方 Windows 64 位二进制文件现在使用尾调用解释器
- 官方 macOS 二进制文件现在默认安装自由线程支持
有关 Python 3.15 变更的更多详细信息,请参阅 Python 3.15 新特性。
macOS 27.0 的 IDLE 或 tkinter 用户请注意
运行 IDLE 或其他使用 tkinter 模块的 GUI 应用程序时,如果通过应用程序菜单命令打开对话框(例如 IDLE 的“关于 IDLE”“设置”和“打开模块”命令),这些应用可能会挂起,出现旋转的沙滩球,需要“强制退出”。
此问题源于 macOS 27.0 中操作系统行为的变化,据信会影响当前所有版本的 Tk 图形工具包,因此也会影响所有当前 Python 版本中的 tkinter 模块。
如果你在 macOS 上依赖基于 Tk 的应用程序(如 IDLE),可能需要考虑推迟安装 macOS 27.0,直到有 Tk 或 macOS 的变通方案,或先测试自己的应用工作流程是否受到影响。请关注 issue #158053 获取更新。
接下来是完全不同的内容
为了庆祝 3.15 的发布,Barry Warsaw 给我们带来了一份礼物。他想到做一个小小的 TUI 冒险游戏,带你走一遍《What’s New in Python 3.15》,并把它呈现为“whatsnewt”。
根据 README,这是一款 TUI 文字冒险游戏:你在解释器内部某处的“启动门厅”(Startup Foyer)醒来,一路前往“发布之门”(Release Gate);途中有十八道谜题,每一道都是你必须真正使用的 3.15 真实特性。你不是回答无聊的问题,而是在 Python 3.15 解释器里真正编写并运行代码。有些谜题需要类型检查器,相关答案由 pyrefly 验证——pyrefly 正是为此作为依赖被引入的——判定结果会引用 pyrefly 的说法。
最简单的运行方式是执行:
uvx --python 3.15 whatsnewt
而且,里面还有彩蛋。
文件
| 版本 | 操作系统 | 说明 | 文件大小 | Sigstore | SBOM | SHA-256 校验和 |
| --- | --- | --- | --- | --- | --- | --- |
| Gzip 压缩源码 tarball | 源代码发布 | | 41.7 MB | .sigstore | SPDX | 438596cac081036d3c1d532ab7e7335eeb35567bc961749a0d5797176db0db68 |
| XZ 压缩源码 tarball | 源代码发布 | | 34.0 MB | .sigstore | SPDX | ba4bed1ba346b916890b76d9e320451420aa69f6408997d33c66482eeae3d575 |
| Android 可嵌入包(aarch64) | Android | | 23.1 MB | .sigstore | | 571e4cf4e0aee3d1ab54a52ca3d4e6845b85ec0bb327f7debfb873172f445dab |
| Android 可嵌入包(x86_64) | Android | | 23.4 MB | .sigstore | | 2413d51948d612cf42baefba25295bb83c2ed84df5726af6fe5bde2dec5d87e7 |
| iOS XCframework | iOS | | 80.6 MB | .sigstore | | 68e98ab35cc0643ba3a227a8c7768da45c2a5e67dbe1bc26598537e96680fd19 |
| macOS 安装器 | macOS | 适用于 macOS 10.15 及更高版本 | 84.9 MB | .sigstore | | 7c7e7eca61cbfa5f0c6f80cd594cddbfd492f4e8b3fb87e3d9fa1efebaec43ed |
| Windows 安装器(64 位) | Windows | 推荐 | 43.3 MB | .sigstore | SPDX | 67d9a63eb145a34aa939f02eadbf8c57f21fcdd6decb901ccac578d2d1f01d6f |
| Windows 安装器(32 位) | Windows | | 41.6 MB | .sigstore | SPDX | 222f79df7d2d5653871c09aef73dd77623514a356ca7f4a4f3ba5b9217e55e8a |
| Windows 安装器(ARM64) | Windows | | 42.6 MB | .sigstore | SPDX | bb1c5123cc63d7bb37962ea7bf65e2b06389be9e5d48b6b532346d42ae487c4f |
| Windows 可嵌入包(64 位) | Windows | | 13.1 MB | .sigstore | SPDX | a6999bcbcbe56f937159ef79c2630260eca99f65f7860bc5cd20430324079a44 |
| Windows 可嵌入包(32 位) | Windows | | 11.4 MB | .sigstore | SPDX | da1ca8f1a491444b2a227b898caa9c44537ac27dcf27cff58347f3b4119f79ad |
| Windows 可嵌入包(ARM64) | Windows | | 12.4 MB | .sigstore | SPDX | abedaa8460572f9bade5e332db5ee0dc95c2dbf6c8dec687a1f03c3e6cd7f7d4 |
| Windows 发布清单 | Windows | 使用“py install 3.15”安装 | 15.0 KB | .sigstore | | ebbd6a12b77ee2cbba5bf9fbb034c609c8336877823f7989126be10a237c11df |
评论
讨论气氛整体积极,多数评论欢迎 Python 3.15 的多项新特性,其中惰性导入的共鸣最集中。少数人则不满发布页链接失效、源码包膨胀和文档 GIF 演示,也有人惋惜 PEP 829 破坏旧写法;另有一条激进预言认为未来只剩 TypeScript/JavaScript、Rust 和 Python,且大量项目(据称甚至包括 Python 解释器)正被 Rust 重写。
欢迎惰性导入(PEP 810)带来更快启动速度
- 显式惰性导入是期待已久的特性,被认为能加快启动时间,尤其对工作场景有用,有人直呼终于等到。(较多人) > 惰性导入终于来了!(@kbumsik)
肯定 JIT 编译器升级带来的性能提升
- 实验性 JIT 编译器显著升级,在 x86-64 Linux 上相较标准解释器有 7–8% 几何平均提升,在 AArch64 macOS 上相较尾调用解释器提速 11–12%,评论对此表示高兴。(少数人) > 很高兴看到 JIT 这方面的改进!(@droidjj)
认为 abi3t 稳定 ABI 与单一 wheel 能大幅降低维护成本
- 自由线程构建的新 abi3t 稳定 ABI 被视为重要进展:因 PyObject 不透明,GIL 构建和自由线程构建可共用同一个 wheel,cryptography 等项目已开始发布单一 abi3.abi3t wheel;实践者反馈这能把 CI 矩阵从约 20 个作业压缩到 4 个,仅此就很值。(少数人) > 发布一个 abi3 wheel 代替按版本构建,把我们的 CI 矩阵从 20 个作业砍到 4 个,光这一点就值了。(@hncbw02z5a)
欢迎 PEP 798 解包推导式与 PEP 814 frozendict 等生活质量改进
- 推导式内解包(PEP 798)和新增 frozendict 内置类型(PEP 814)被看作期盼已久的小而实用的改进,有人感叹早该如此。(少数人) > 这些等了简直一辈子的生活质量改进终于来了。(@6gvONxR4sf7o)
称赞 PEP 686
- 有评论单独为 PEP 686 叫好,用强烈语气表达认可,但未展开说明具体收益。(少数人) > PEP 686 太赞了!(@PaulHoule)
从维护者视角欢迎旧版本生命周期结束
- 新版本发布也意味着 Python 3.10 停止支持,库维护者终于可以让兼容所有当前版本的项目使用 3.11 及以后的新特性,这对生态是实际利好。(少数人) > 作为维护者,我最喜欢新版本的一点是它意味着旧版本支持结束,库终于能拥抱 3.11 的特性了。(@simonw)
建议用 AI 收窄类型注解并肯定 3.15 类型增强
- 在类型检查已较严格的项目中,可借助 AI 反复收窄函数类型注解,既防错也提升对 AI 的清晰度;3.15 的 sentinel 和 TypedDict 增强进一步提供了所需构造。(少数人) > 用 AI 把类型注解收窄到合适程度,能防止很多 bug 并让代码对 AI 更清晰。(@OutOfHere)
不满发布页链接失效、源码包膨胀且文档用 GIF 演示
- 有人遇到发布页面中大量链接失效;另有评论发现 XZ 源码包比 3.14 大约一半,原因是文档目录新增两个总计超过 10MB 的动画 GIF,用来演示 tachyon 采样分析器。虽然 GIF 能展示终端 TUI 外观,但对如何使用帮助有限,评论更希望用静态截图加 SVG 图示。(少数人) > 我更希望用基于静态截图的 SVG 图示,而不是大体积 GIF。(@zahlman)
惋惜 PEP 829 移除了基于 .pth 的 codecs 安装写法
- PEP 829 已合并,评论理解其必要性,但也提到自己曾用 .pth 导入安装 codecs “宏”做很酷的事情,这一旧技巧不再可用令人遗憾。(少数人) > 我理解为什么有必要,但我之前用 .pth 导入安装 codecs“宏”做了些很酷的事情。(@rirze)
认为未来只剩 TypeScript/JavaScript、Rust 和 Python,且项目正被 Rust 重写
- 一条激进少数派预言称,未来能存活的只有 TypeScript/JavaScript、Rust 和 Python(Python 靠数据科学和交互式应用),并列举 Bun、Git、mold 等案例,认为可重写的东西都会被 Rust 重写,甚至称 Python 解释器也在改用 Rust 作为主语言。(少数人) > 未来只有 TypeScript/JavaScript、Rust 和 Python 会存活,而且据我所知 Python 解释器也正在改用 Rust。(@wg0)
有价值的补充
- 3.15 的 XZ 源码 tarball 比 3.14 大约一半,主因是文档目录新增两个总计超过 10MB、演示 tachyon 采样分析器的动画 GIF,XZ 难以进一步压缩(@zahlman)。
- abi3t 落地中让 PyObject 变为不透明,使 GIL 与自由线程构建可共用 wheel;cryptography 已在 3.15+ 发布单一 abi3.abi3t wheel,beta1 发布前还紧急修复过一个 Windows 特有问题,作者另有 EuroPython 演讲详解 Python ABI 与 abi3t 的构建发布过程(@ngoldbaum)。
- 可用命令 uvx --python 3.15 whatsnewt 快速查看 3.15 的新变化(@simonw)。