Python 3.15 正式发布:默认 UTF-8、frozendict、更快 JIT,升级前先看这几点
Python 3.15.0 于 2026 年 10 月 9 日正式发布,当前稳定补丁是 3.15.1(2026 年 10 月 21 日更新),官方下载入口是 python.org 的下载页。这次更新最影响普通用户的是三件事:读写文件默认按 UTF-8 处理、新增内置的不可变字典 frozendict、解释器支持显式延迟导入;至于要不要马上升级,日常写脚本随时可以,跑现有项目建议等依赖兼容再动。
3.15 和 3.14 差在哪:三处最直接的变化
先看三个会直接改变代码行为的点。第一个是 PEP 686:没有声明编码时默认按 UTF-8 处理文本文件,不再依赖操作系统的区域设置;这意味着以前在 Windows 上读中文文本需要手动指定 encoding 的场景会变少,但少数依赖旧默认行为的老脚本可能出现编码相关的提示。第二个是 PEP 814:新增内置 frozendict 类型,创建后不可修改的映射,适合放配置表、常量这类不希望被意外改动的数据。第三个是 PEP 810:显式延迟导入,import 语句可以推迟到真正用到时才加载,缩短解释器启动时间,对命令行工具和脚本最友好。
内置类型与解释器:frozendict、更聪明的错误提示
frozendict 是 3.15 里最直白的新增功能,它就是「只读的字典」:构造方式与普通字典一致,但任何试图修改它的操作都会报错。处理不可变配置、法术表这类数据时,用它比约定「别去改」更可靠。错误提示也在继续变好:对缺失属性的建议不再只来自对象本身,还参考同类数据结构的常见方法名,比如对列表误用了 JavaScript 风格的 push(),解释器会直接建议 append(),这对从其他语言转过来的人很有用。类型系统方面还支持了 TypedDict 的额外键值类型约束等细项,属于进阶写法,普通脚本用不到。
JIT 提速与垃圾回收的回退
Python 3.13 首次引入实验性即时编译器(JIT),3.15 这一版把它的实现往前推了一大步:换上了新的跟踪前端、更快的寄存器分配和更优质的机器码,官方更新说明给出的是相对旧解释器在部分平台和负载下的几何平均提升,具体数字视平台而定,以官方说明为准。需要留意的是另一个方向上的调整:3.14 引入的增量式垃圾回收器被不少用户反馈内存占用偏高,3.15 回退回了 3.13 及更早版本使用的分代式回收器,官方说明表示增量回收器会在改进后重新回归。所以 3.15 并不是在 3.14 基础上单纯叠加,两代之间的取舍是双向的。
默认 UTF-8 对老脚本的实际影响
把默认编码改成 UTF-8 是 3.15 里对历史行为改动最大的一项。以前在 Windows 上不指定 encoding 去 open 文本文件,最终用什么编码取决于系统区域设置,中文字符乱码多半由此而来;3.15 之后未声明时统一走 UTF-8,让这类问题在源头上变少。反向的影响是:如果老代码之前依赖区域设置给的默认编码(比如 GBK)来读写文件,升级后行为会变化,这类脚本需要在 open 调用里显式写 encoding。究竟哪些影响、怎么迁移,官方更新说明 docs.python.org/3/whatsnew/3.15.html 里逐条列得很清楚,遇到编码相关异常以那份文档为准。
下载页怎么认、版本怎么挑
官方下载入口只有 python.org 的下载页,页面顶部第一行就是当前最新稳定版,2026 年 10 月对应 3.15.1。Windows 下载页按架构提供 64 位、32 位和 ARM64 三档安装器,绝大多数电脑选 64-bit installer 即可。如果项目或教程要求固定版本(比如 3.13 或 3.14 系列),下载页下方保留着各历史版本的安装包目录,按版本号找对应的大版本和小版本即可,不必非升到 3.15。装完在命令行跑 python --version 和 pip --version,两项都有输出就说明环境就绪;多版本并存时先确认当前 python 指向哪个解释器再装包。
要不要现在升级
分两种情况:纯粹自学、写个人脚本,直接装 3.15.1 没有负担,新特性用起来也顺手;跑现有项目或生产环境,先确认依赖库对 3.15 的兼容声明,尤其是含编译型扩展的包,往往要等第三方跟进新版本解释器,稳妥的节奏是「先在测试机装 3.15 跑一遍,再决定全量升级」。网上教程和课程多数还按 3.10 到 3.13 编写,跟着教程走时以教程写明的版本为准,别为了追新打乱学习节奏。
升级前做完这几件确认
1. 打开 python.org 下载页,确认顶部版本号是 3.15.x(当前 3.15.1),别误下到旧版。2. 先在测试机装 3.15 跑一遍项目测试,再决定生产环境是否升级。3. 老脚本出现编码相关变化时,去官方更新说明 docs.python.org/3/whatsnew/3.15.html 逐条核对。4. 多版本并存时先确认 python --version 指向的目标解释器,再执行 pip 安装。5. 拿不准就保持现有版本,官方下载页的历史版本目录一直在,稳稳升级不晚。