Python周刊2026W34 | Python 3.12.14 安全发布、Django 转年度发布、asyncio 连接泄漏修复、PEP 843 export 草案推进

本周 Python 3.12.14/3.11.16/3.10.21 安全修复并发发布,Django 转年度发布、DRF 3.18.0 含破坏性变更,PyPI 冻结 Index API(PEP 833);asyncio 修复服务端连接泄漏,标准库修复多处 use-after-free,PEP 843 export 草案推进。

🐍 Python 官方开发进展

🔧 运行时

asyncio 服务端连接生命周期修复

修复 asyncio.start_server() 普通 client_connected_cb 抛出异常时传输未关闭、Server.wait_closed() 永久挂起且连接泄漏(#155942),以及 _accept_connection2() 中创建抛错时接受套接字泄漏并不上报错误(#155936),另修复 TaskGroup 在 cancel() 后丢失外部取消(#155439)。运行 asyncio 服务器与并发任务组的稳定性提升,无谓连接泄漏与挂起消失。

标准库内存安全与崩溃修复

修复多处标准库在重入或异常路径下的内存安全问题:TextIOWrapper.tell() 在解码器重入 seek 时持有已释放引用导致 use-after-free(#153540);ctypes Pointer.contents 在 free-threaded 构建下删除时因临界区顺序错误崩溃(#156125);sqlite3 的 Connection.autocommit setter 等存在段错误(#156104)。用户升级后将不再遭遇这些崩溃,解释器稳定性提升。

📋 PEP 流程

PEP 843 export 语句草案推进与完善

新增 export * 与 import * 行为完全对齐(含无 all 回退),消除唯一开放问题并移除 Open Issues;将 all 构造规则改写为三条显式用例并补 TYPE_CHECKING 再导出为 stub-only 包预期用例,同时按评审意见限制 export 仅用于模块层级、合并伪代码重复并补充讨论链接。开发者未来可用 export 语句以 DRY 方式重导出,语义与 import * 一致、学习成本更低。

🔥 头条

拆分(多行)文本并非易事

有一个看似简单的问题:给定一段多行文本,你如何拆分它并返回一个数组?Unicode 让一切都比乍看之下困难得多。B-LIST.ORG

用 OpenCode 编程:AI 辅助的 Python

学习如何使用 OpenCode 进行 AI 辅助的 Python 编程,借助免费的 Gemini API 密钥在终端中直接分析和重构代码。REAL PYTHON 课程

测验:用 OpenCode 编程——AI 辅助的 Python

一个免费的 Google Gemini API 密钥把你的终端变成了完整的 AI 辅助 Python 重构工作站——无需付费订阅或 IDE 插件。大多数开发者在分析代码时仍会在云端聊天窗口之间切换上下文,在忙乱中丢失项目的结构与状态。本测验带你走完安装 OpenCode、接入 Gemini 密钥,并使用 Plan 与 Build 模式以及命令面板来分析、重构和实时切换模型,全程不离开 shell。

Code-Review-Bench 上排名第一的开源代码审查器

开源的 PR-AF 击败了同类的每一个商业审查器——配合 GLM-5.2,它在 Martian Code-Review-Bench 的 42 个工具上取得了 0.706 的黄金召回率,领先于所有 qodo、coderabbit、greptile、copilot 和 devin 变体。大多数 AI 审查器止步于浅层的 diff 摘要,而深入、有证据支撑的审查仍被锁在昂贵的旗舰模型之后;PR-AF 则把每个 PR 转化为聚焦的审查智能体,让结论扎根于代码证据,并把常规工作路由给更便宜的模型。本文涵盖了它的一次性调用 CLI、原始 HTTP API、架构以及基准对比,以便你能在自己的拉取请求上运行它。

两行 Python 就能让解释器段错误

两行普通 Python 就让每个启用了惰性注解的 CPython 发生段错误:PEP 749 给 SET_ADD 添加了一个操作数,而用户代码可以重新绑定它。TIMOFEI IVANKOV • 由 Timofei Ivankov 分享

2026 年打包委员会选举候选人揭晓!

十七位候选人正在争夺仅五个席位,但得票最高的两位不会与紧随其后的三位一起任职——委员会把获胜者拆分为错开的 A 组(两年任期)和 B 组(一年任期),使整个机构不会一次性全部换血。Python 的打包治理体系正从零开始搭建,每一位 PSF 投票成员必须在 8 月 25 日前确认其资格,否则将错过来临的 9 月 1 日选票。这篇文章列出了候选人名单、错开任期的机制,以及逐步的投票资格确认指引。

2026 年 PSF 董事会候选人公布!

PYTHON SOFTWARE FOUNDATION

Django 正转向年度发布周期

DJANGO SOFTWARE FOUNDATION

Python 3.12.14、3.11.16 和 3.10.21 发布

三个 Python 分支同时发布了安全修复——而维护者以欧洲日食为由,对没有发布日历这件事轻描淡写。这些仅含安全修复的版本仍支撑着无数生产部署,但发布说明悄然关闭了多年前的 CVE,例如 ftplib 在 2021 年对 PASV 地址的信任问题,以及 tarfile、wsgiref、expat 和 cookies 中一波新的路径穿越、头注入和解析器崩溃漏洞。发布说明列举了每一个被修复的 CVE 和缺陷,以便团队评估自身风险并优先升级。

Django REST Framework 3.18.0 发布

Django REST Framework 3.18.0 将列表序列化器(many=True)的验证错误从列表格式改为字典格式,悄然破坏了客户端。同一版本还放弃了对 Django 4.2、5.0 和 5.1 的支持,同时新增 Django 6.1 支持,迫使仍在使用较旧 LTS 线路的团队必须同时规划升级和错误形态迁移。发布说明涵盖了这些破坏性变更,以及诸如 unaccent SearchFilter、@throttle_scope 装饰器等新特性,还有一批可浏览 API 和 OpenAPI 的缺陷修复。

📖 文章与教程

Python 中的 OAuth 2.0:详解授权码流程

从四个角色出发详解 OAuth 的授权码流程:重定向、用 code 换取 token 的交换、state、PKCE 与刷新令牌,并附带一个完整可运行的 Python 脚本,以及一张你真正会遇到的 OAuth 错误表。ENDPOINT51.COM • 由 Simon O'Connor 分享

pandas 的问题不在性能

这篇观点文章主张,pandas 在日常中最大的代价往往是认知负担而非执行时间,并探讨了与后端无关的数据分析 DSL 能否降低这一代价。NEAL HUGHES • 由 Neal Hughes 分享

🐍 面向对象 Python,现场直播教学

大多数 OOP 课程先教词汇,然后寄希望于抽象能自然扎根,但这门直播 Python 课程反其道而行——概念只在你的代码恰好因缺少它而崩溃的那一刻才出现。能跑的 Python 代码即使没有深厚的对象设计也能交付,但状态、行为和不断变化的需求会悄悄把这个缺口变成没人乐意维护的代码库。该课程逐节构建一个寿司餐厅模拟器,把 @property 或序列协议等每个工具都挂到你刚刚感受到的痛点之上。

PyCon 2026 的方方面面安全

今年的 PyCon US 新增了一个专门的安全主题轨道。Talk Python 采访了其中几位核心人物:Juanita Gomez、Mike Fiedler 和 Seth Michael Larson。TALK PYTHON 播客

Index API 的 HTML 表示现已冻结

「PyPI 已采纳 PEP 833,该提案『冻结』了 index API 的 HTML 表示,它有时也被称为『simple API』或『simple repository API』。」PYPI.ORG

如何将 OpenTelemetry 与 FastAPI 应用集成

学习如何在 Python 中将 OpenTelemetry 与 FastAPI 应用集成,以埋点端点、导出链路追踪、添加自定义 span 并关联日志。REAL PYTHON

测验:如何将 OpenTelemetry 与 FastAPI 应用集成

给 FastAPI 应用加上 OpenTelemetry 能精确暴露生产环境中错误发生的位置——然而大多数团队因为接入链路追踪、自定义 span 和日志关联显得过于繁重而盲目上线。这个包含 6 道题的动手测验带你走完埋点端点、导出链路追踪、为业务逻辑添加 span 以及调优采样以控制开销的全过程。你将巩固如何让可观测性变得切实可行,并自信地诊断生产问题。

Qt Designer 与 Python:更快构建你的 GUI 应用

学习如何使用 Qt Designer 配合 PyQt6 构建 Python GUI。以可视化方式创建你的主窗口和对话框,然后在应用中加载它们。REAL PYTHON

管理后台表单注入

了解 Django 管理后台中一个用于在网页弹窗之间传递值的隐藏特性。TIM SCHILLING

调用方特定的覆盖率

关于覆盖率度量新特性的一点想法:按调用方统计覆盖率。NED BATCHELDER

🛠 项目与代码

pytest-leak-finder:在失败的那一个之前找出泄漏的测试

单独运行能通过、在测试套件中却失败的测试几乎从来不是罪魁祸首——是某个更早的测试把共享状态弄脏了。手动在数十个前置测试里逐一排查并不现实,于是真正的泄漏一直藏着,而 CI 持续崩溃。pytest-leak-finder 把失败的测试标记为靶点,然后对其之前的测试执行类似 git-bisect 的二分搜索,将可疑集合缩小到少数几次运行,而非痛苦的手动扫描。

num2words:将数字转换为单词。42 → Forty-Two

GITHUB.COM/SAVOIRFAIRELINUX

pyrig:自动化 Python 项目搭建

GITHUB.COM/WINIPEDIA • 由 Winipedia 分享

cog:Python 的嵌入式图数据库

图数据库通常意味着要搭建一个独立的服务器——但 CogDB 完全运行在你的 Python 进程内部,零配置且无需查询字符串。传统的图工具迫使你在 Python 和查询语言之间来回切换,而原始键值存储又无法表达关系。CogDB 的 Torque 遍历 API 让你用流畅的 Python 编写图查询,将三元组持久化在笔记本、应用或浏览器中。

📅 活动

每周 Real Python 办公时间问答(线上)

2026 年 8 月 19 日 REALPYTHON.COM

PyCon Ghana 2026

2026 年 8 月 20 日至 8 月 23 日 PYCON.ORG

PyCon Latam 2026

2026 年 8 月 20 日至 8 月 24 日 PYLATAM.ORG

PyLadies:用 TabPFN 入门表格基础模型

2026 年 8 月 20 日 MEETUP.COM

PyData Bristol 线下聚会

2026 年 8 月 20 日 MEETUP.COM

OSS 安全聚会:Mike Fiedler,PyPI 安全工程师

8 月 26 日(周三) LUMA.COM • 由 Mila Zhou 分享

PyCon JP 2026

2026 年 8 月 21 日至 8 月 24 日 PYCON.JP

DjangoCon US 2026

2026 年 8 月 24 日至 8 月 29 日 DJANGOCON.US

PyCon AU 2026

2026 年 8 月 26 日至 8 月 31 日 PYCON.ORG.AU

PyCon PL 2026

2026 年 8 月 27 日至 8 月 31 日 PYCON.ORG

PyCon Kenya 2026

2026 年 8 月 28 日至 8 月 30 日 PYCON.KE

PyCon Togo 2026

2026 年 8 月 28 日至 8 月 30 日 PYTOGO.ORG


往期精选


阅读原文


扫码关注「右耳朵猫AI」

扫码关注「右耳朵猫AI」

posted @ 2026-08-27 19:17  右耳朵猫AI  阅读(19)  评论(0)    收藏  举报