告别信息碎片,「Python潮流周刊」为你带来最优质的Python技术资讯

你好,我是猫哥。这里每周分享优质的 Python、AI 及通用技术内容,大部分为英文。另有电报频道作为副刊,补充发布更加丰富的资讯,欢迎关注。

本期分享了 12 篇文章,12 个开源项目,赠书 5 本,全文 2000 字。

🦄文章&教程

1、NumPy 2.0:一个重要的里程碑

距离 Numpy 1.0 发布已 18 年,2.0 版本是一个重要的里程碑。它引入了一些非兼容性的修改,重要的升级:清理和简化了 Python API、更新了标量提升规则、强大的 DType API 和新的字符串 dtype、增强 Windows 兼容性、支持 Python 数组 API 标准。(附:NumPy 2.0.0 Release Notes

2、2024 年 Python 语言峰会:Python 该采用日历版本吗?

我们去年将 Python 语言峰会的所有议题出了一期加更,今年只挑三则,更多议题请查看官方博客。这篇议题讨论的是将 Python 当前的语义版本控制(SemVer)改为日历版本控制(CalVer),即在版本号中加上年份,例如 3.26 表示在 2026 年发布的版本。备选的格式有以年份为主的“26.0.0”,以及年加月的“26.10.0”。

3、2024 年 Python 语言峰会:我们应该让 pdb 变得更好吗?

今年 Python 语言峰会的议题之一,出自国内最近成为核心开发者的@高天。讨论了可以给 pdb 添加的一些新功能,包括显示断点附加代码、终端中的语法高亮、支持自定义、处理更多场景(线程、异步、字节码、远程调试);也提出将 pdb 底层切换成sys.monitoring 以提升性能,但这会引入向后兼容问题。

4、2024 年 Python 语言峰会:手机端上的 Python

今年 Python 语言峰会的议题之一,讨论 Python 在 iOS 和 Android 等移动端上的现状和发展方向。Python 3.13 对 Android 和 iOS 上的 Python 提供 Tier 3 级支持。BeeWare 团队正推动将 Python 开源包生态引入移动端,在 CPython 测试套件和构建工具上也会加大投入。

5、Python 项目管理入门

探讨了如何管理 Python 项目的环境和依赖项,以及如何有效地构建项目,内容较长。

6、在 Python 中连接字符串:一个“啊哈”时刻

作者使用 Python 已长达 17 年,到底是什么内容让她发出“啊哈”的感叹?作者研究str.join() 时发现一个奇怪的问题:当使用生成器作为str.join()的入参时,性能比使用列表推导式慢约 16%。原因是 join() 会先将生成器转换为列表,然后拼接,因此导致额外的开销。PyPy 则不会做这种处理,它用生成器做入参时比列表推导式快约 5 倍。

7、掌握上下文管理器,简化 Python 资源管理

在使用资源时,经常要做重复性任务,如设置和关闭进程、打开和关闭资源。这些场景最适合用上下文管理器,文章介绍什么是上下文管理器、详细的使用指南、典型的使用场景和常见问题。

8、如何从Pandas 迁移到 Polars

Rust 开发的高性能 Polars 正在蚕食 Pandas 的市场份额。从 Panas 迁移到 Polars 是不是很麻烦?会不会导致数据处理流程和工具不兼容?作者演示了无缝切换的过程。

9、向 CPython 添加 JIT 编译器

这是对 PyCon 2024 一场演讲的文字报道,演讲者是给 Python 3.13 引入 JIT 编译器的 Brandt Bucher。介绍了 Python 3.13 前做的一系列改进,为什么要在 3.13 引入 JIT 编译器,团队当前所做的一些工作以及核心的实现细节问题。

10、Debug 日志:CPython GH-120437

文章分享了作者调试 Python 3.13 Beta 版本一个 Bug 的经历,涉及的模块是最新引入的 JIT/Tier 2 优化器。

11、使用 Rust 将 Python AST 的解析速度提高 20 倍

作者用第 53 期分享过的tach 库分析 3000 个文件,耗时近 10 秒。文章分析了耗时多的原因,然后用 Rust 重写了 C 代码,结果提速近 20 倍。使用了性能分析工具有 py-spy、speedscope 和 Valgrind。

12、Ruff:Rust 开发的 Python linter-formatter 的内部原理

这是一个系列文章的第一篇,试图解析 Ruff 库的内部实现原理,包括 Rust 和 Python 如何相互操作、Ruff 第一个版本是如何工作的、现在版本有哪些组成部分等内容。

🐿️项目&资源

1、pdf-to-podcast:将任何 PDF 转换为播客节目

利用 OpenAI 的文本转语音模型和 Google Gemini 来处理 PDF 文件,生成自然对话类播客,并输出为 MP3 文件。

2、prettypretty:漂亮的终端颜色库

帮助用 Python 和 Rust 开发出漂亮的终端用户界面。包含一个强大而通用的颜色库。

3、django-render:使用 Django 和 React 构建用户友好的应用

Web 全栈项目,构建完全客户端渲染的 React 应用,后端基于 Django,支持表单、会话验证和消息。支持 Storybook 和 Vite 热模块重载。

4、holmesgpt:GPT 支持的 DevOps 助手

从 DevOps 到 AIOps,查看告警并获取缺失的上下文数据,更快地找到根本原因。

5、labelme:用 Python 作图像多边形标注

一个用 Python 开发的图形图像标注工具,用 Qt 作图形界面。支持分类和清理图像标注,也支持视频标注,支持 GUI 定制。(star 12.7K)

6、aurora:Python 实现的快速、可扩展的静态站点生成器

简单的静态站点/博客生成器,渲染 4000 个 Markdown 文件大约花 1 秒钟。

7、httpstat:使 CURL 统计变得简单

以一种美观和清晰的方式将 curl(1) 统计数据可视化。单个 Python 文件,无外部依赖。(star 6K)

8、writer-framework:用于创建 AI 应用的全栈框架

提供可视化编辑器,支持拖放,无需写代码即可构建 UI;用 Python 编写后端代码,界面与业务逻辑间实现关注点分离。(star 1.2K)

9、surya:OCR、布局分析、顺序读取、90+ 种语言的行检测

一个文档 OCR 工具包,支持 90+ 语言,行级文本检测,支持布局分析(表格、图像、页眉等)。(star 8.8K)

10、MiniCPM-Llama3-V 2.5:手机上媲美 GPT-4V 的多模态 LLM

MiniCPM-V 系列的最新版本模型,共 8B 参数量,OpenCompass 得分超过 GPT-4V-1106、Gemini Pro、Claude 3、Qwen-VL-Max 等主流商用闭源多模态大模型。(star 7.5K)

11、pyod:用于异常值检测 Python 库

用于检测多变量数据中的异常,支持 50 多种检测算法,下载量超过 1700 万次。利用 numba 和 joblib 进行 JIT 编译和并行处理,拥有超高性能。(star 8.1K)

12、warp:用于高性能 GPU 仿真和图形的 Python 框架

NVIDIA 推出的框架,可将普通 Python 函数用 JIT 编译成在 CPU 或 GPU 上运行的高效的内核代码。专为空间计算而设计,可轻松编写用于物理模拟、感知、机器人和几何处理的程序。(star 3.4K)

🐧 往年回顾

Python潮流周刊#7:我讨厌用 asyncio(2023.06.17)

支持 Python猫