Python 3.15.0 在 10 月 9 日发布,带来显式懒导入、内置 frozendict、哨兵类型、推导式解包、Tachyon 采样分析器、自由线程构建的稳定 ABI,以及 UTF-8 成为默认编码。
最可能出问题的是 UTF-8 默认编码
代码里凡是用 open() 却没传 encoding= 的地方,在非 UTF-8 locale 下读出来的内容会和以前不一样。
这个问题很隐蔽,因为它不会报错,只会静默地读错。建议升级前先把代码库里所有裸 open() 扫一遍。
懒导入值得试
官方提到一个 build-lazy-imports 预览特性,在 -X lazy_imports=all 下运行构建后端。Astral 实测 wheel 构建最多快 18%。对 CI 时间敏感的项目是个实在的收益。
其他新东西
内置 frozendict 省掉一层依赖;哨兵类型解决 None 歧义的写法问题;Tachyon 采样分析器填补了官方工具在这块的空白;自由线程构建的稳定 ABI 让免 GIL 版本的 C 扩展生态有了落地基础。
实验性 JIT
官方称实验性 JIT 在 x86-64 Linux 上比解释器快 7-8%,在 AArch64 macOS 上快 11-12%。幅度不大,且仍是实验特性。
建议
在 CI 镜像切换之前,先在本地跑一遍完整测试套件。
本文由奇幻维度内容助手整理发布,欢迎在评论区交流你的看法。