2026-10-18 Python Hub 每周摘要

2026-10-18 Python Hub 每周摘要

💡 原文英文,约1300词,阅读约需5分钟。
📝

内容提要

本周Python生态主要动态:TurboPython可将带类型标注的Python编译为无运行时、无GC、无GIL的原生二进制;Python 3.15.0发布,新增惰性导入和内置不可变字典;Polars 2.0支持溢写磁盘、SQL和新Map类型,基准测试领先;NumPy正移植至Limited API以支持abi3轮子,并将searchsorted提速达25倍;CPython探讨逐步引入Rust。

🔎

延伸解读

编译型Python的取舍

TurboPython将带类型标注的Python编译为无运行时、无GC、无GIL的原生二进制,这为性能敏感场景提供了新选择。但文章未说明其类型系统覆盖范围、与现有C扩展的兼容性及调试支持。读者需注意,此类工具通常要求代码严格类型化,且可能牺牲动态特性,迁移前应评估生态依赖。

Polars 2.0的基准与边界

Polars 2.0引入溢写磁盘、一等SQL和新Map类型,并报告在TPC-H和TPC-DS上领先DataFusion与DuckDB。基准结果虽亮眼,但文章未披露测试规模、硬件配置及查询类型分布。实际选型时,应结合自身数据量、并发模式和SQL兼容性需求验证,而非仅凭基准排名。

NumPy的ABI3与性能双线推进

NumPy正移植至Limited API以支持abi3轮子,可减少按Python版本构建的轮子矩阵,并简化新版本支持;同时通过批量化二分搜索和O(1)额外内存,使searchsorted在2.5版提速达25倍。这两项工作分别改善分发效率和运行时性能,但abi3迁移仍受multiarray等模块限制,落地时间未明确。

CPython引入Rust的渐进路径

CPython开发者探讨逐步引入Rust,计划先在Python 3.16中提供可选的Rust版zlib实现,再考虑I/O、JSON、解析和memoryview等区域。提案强调不重写CPython,但需解决平台支持、依赖、构建复杂性和社区接受度等问题。读者应关注可选实现的实际维护成本与性能收益是否匹配。

❓

Q&A

TurboPython 是什么?它有什么特点?

TurboPython 是一个 Python 到 C++ 的编译器,可将带类型标注的 Python 代码编译为原生二进制文件,无需 Python 运行时,没有垃圾回收(GC),也没有全局解释器锁(GIL)。

Python 3.15.0 有哪些新功能?

Python 3.15.0 引入了惰性导入、内置不可变字典、推导式中的简化解包、新的采样分析器,并默认使用 UTF-8 编码。

Polars 2.0 有哪些重要更新?

Polars 2.0 引入了初步的溢写磁盘支持、重大性能改进、一等公民的 SQL 支持、新的 Map 数据类型以及更严格的 dtype 处理。在 TPC-H 和 TPC-DS 基准测试中,Polars 报告其性能领先于 DataFusion 和 DuckDB。

NumPy 在性能优化和兼容性方面有哪些进展?

NumPy 正被移植到 Python 的 Limited API,以便最终提供跨多个 Python 版本可用的 abi3 轮子,减少轮子矩阵并简化对新版本的支持。同时,NumPy 2.5 通过批处理独立搜索和向量化操作,将 np.searchsorted 的速度提升了高达 25 倍。

CPython 是否计划引入 Rust?具体如何实施?

CPython 开发者正在探索逐步引入 Rust,首先在 Python 3.16 中为 zlib 提供可选的 Rust 实现,然后考虑在 I/O、JSON、解析和 memoryview 等领域更广泛地使用。该提案旨在提高安全性和性能,而无需重写 CPython,同时解决平台支持、依赖、构建复杂性等担忧。

ai-agents-zero-to-hero 项目是什么?

ai-agents-zero-to-hero 是一个全面的指南项目,教授如何使用标准的 Python 3.11+ 从第一性原理到生产环境构建 AI 代理。它零强制依赖,纯标准 Python,不使用魔法框架。

🏷️

标签

➡️

继续阅读