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

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

本期分享了 12 篇文章,12 个开源项目,赠书 5 本《程序是怎样跑起来的(第3版)》,全文 2200 字。

🦄文章&教程

1、我「接见」了诺奖得主

真我辈楷模啊!我们周刊的常客 @frostming 由于开发了 PDM 的缘故,被 2018 年诺奖共同得主 Paul Romer 约见。文章分享了这段让人兴奋的经历,其中提及 Paul 在做一个帮助 Python 初学者搭建开发环境的 GUI 应用,想不到他会关注这种事,瞬间引起了我对他的好感。

2、450 天成为 Python 核心开发者

又一位我辈楷模!@高天 仅花一年多时间为 CPython 作贡献,现已正式成为 Python 核心开发者。全球目前活跃的核心开发者不到 100 位,能成为其中一员实属难得啊。(附:这篇提名高天的帖子,详细总结了他为 Python 做的贡献)

3、Python 如何比较浮点数和整数?

文章从一个很奇怪的问题开始(见下方截图),介绍了 IEEE-754 双精度格式表示法,深入到 CPython 解释器源码解读了 Python 在比较浮点数和整数时的算法。不同于 C 和 Java 等语言隐式将整数转换为双精度,Python 具有无限精度的整数,因此设计了专用算法来实现比较。

超大整数与浮点数比较时的奇怪结果

超大整数与浮点数比较时的奇怪结果

4、JIT 和移除 GIL 都不是我最期待的 Python 3.13 特性

Python 3.13 是较为独特的版本,本周刊已分享过不少内容。然而,作者最看重的特性却是新的dbm.splite3 ,解决了他使用 dbm+shelve 在不同操作系统不兼容的问题。

5、从事 Python 打包工作 6 年的不为人知的故事

作者在 PyCon US 2024 上发表闭幕主题演讲,分享 6 年来关于 Python 打包的一些故事。这篇文章罗列了很多与演讲话题相关的链接和参考资料。

6、庆祝 Beautiful Soup 的 20 周年

从上一则分享的博客中发现,Beautiful Soup 已经发布 20 周年了!它常用于爬取解析和网页内容,这篇周年纪念文章回顾了一些故事,同时主要想收集更多用户故事,计划出一本选集。这么长久健康发展的项目,开发者还富有人文情怀,值得点赞。

7、曾经最喜欢 Ruby,现在可能是 Python

作者曾经很喜欢 Ruby 但不喜欢 Python,后来从 TypeScript 和 Rust 上发现了类型编程的强大之处,现在被支持类型提示和 match-case 的 Python 吸粉了,同时发现它还有一些很好的特性,所以已经转向了 Python 阵营。

8、使用 Postgres 的 Django 异步任务队列(不是 Kafka、Rabbit MQ、Celery 或 Redis)

文章介绍了 Django 中可简单替代 Celery 和其它复杂方案的异步任务队列实现,即“Django 命令”。文章演示了相关功能的使用,以及对可能出现的问题(例如死锁)的考虑。

9、在 Streamlit 中支持异步 MongoDB 操作

Streamlit 是构建仪表板的绝佳工具,但是异步操作数据源很麻烦,文章介绍了如何更好地将两者融合起来,分析了 4 种实现思路。用到Beanie 库异步操作 MongoDB。

10、LangChain 实战:利用 LangChain SQL Agent 和 GPT 进行文档分析和交互

如何用 AI 数字化大量的文件,并回答用户提出的复杂的与数据相关的问题?文章介绍了用 Python 和LangChain来读取和分析 PDF 文档,用 SQLite 管理数据,用 LangChain SQL Agent 实现问答。

11、pyo3_asyncio:Python Asyncio 事件循环的 Rust 绑定

pyo3_asyncio 提供方便的接口来管理 Python 和 Rust 的 async/await 操作,支持两者间的 future 转换,并管理两种语言的事件循环。文章介绍了相关的实现原理和使用方法。

12、PyPy 已经悄悄地为我工作了好几年了

作者一直用pipx 安装 Python 依赖库,而且用的是 PyPy 解释器而不是官方的 CPython。多年来一直运行良好,没有明显差异,表明 PyPy 确实是挺成功的 CPython 替代品。

🐿️项目&资源

1、llama-fs:基于 llama 3 的自组织文件系统

根据文件内容和时间等条件自动重命名文件,以及管理文件目录,支持多种文件包括图片和音频。拥有 Electron 开发的前端和 FastAPI 支持的后端。(star 3K)

2、orjson:快速准确的 JSON 库,支持数据类、日期时间和 Numpy

号称是最快的 Python JSON 库,比标准库和其它三方库更准确。以本机方式序列化 dataclass、datetime、numpy 和 UUID 实例。(star 5.7K)

3、asyncssh:在 asyncio 上提供 SSHv2 协议的异步客户端和服务器

支持异步的 SSHv2 客户端和服务端实现,支持 SFTP 和 TCP,兼容 OpenSSH。单个 SSH 连接上同时多个会话,单个事件循环中多个 SSH 连接。(star 1.5K)

4、ipyblender-experimental:Jupyter 中引入 Blender

Blender 是一款功能强大的开源 3D 图形和动画软件,用于 3D 建模、渲染、动画制作和视频后期处理。这个项目将它集成到了 jupyter notebook。

5、searxng:免费的互联网元搜索引擎,汇总各种搜索服务和数据库的结果

尊重隐私的互联网元搜索引擎,汇总了来自 70 多种搜索服务的结果。支持自托管、无用户跟踪和分析、安全加密的连接、100 多个维护良好的实例。(star 9.7K)

6、rio:纯 Python 的 Web 开发框架,无需 JavaScript、HTML 和 CSS

Python Web 框架,无需写一行 HTML、CSS 或 JavaScript。提供丰富的 React 风格组件,声明式 UI 框架,完全的类型安全。

7、buku:个人的文本迷你网络

一个强大的书签管理器和个人文本迷你网络,也提供了 GUI 端。可从浏览器导入书签或从网络获取 URL 的标题、标签和描述。使用你喜欢的编辑器添加、撰写和更新书签。(star 6.3K)

8、resume-builder:纯 Python 开发的简历生成工具

简单的低成本个人简历生成工具,生成 PDF 格式的文件。

9、more-itertools:比 itertools 丰富的可迭代对象操作

标准库itertools 提供了很多函数,这个项目是对它的补充,提供的函数非常之多,建议查看文档。(star 3.5K)

10、tach:强制实施模块化、解耦的包架构

用 Rust 开发的 Python 项目管理工具,强制要求模块化设计,定义和规范包依赖关系,使开发和维护更容易。

11、Zango:构建企业级应用/微服务的 Python Web 框架

构建在 Django 之上的 Web 框架,支持在单体服务上托管多个应用或微服务。内置安全和合规组件,提供企业所需的应用组件。

12、pdm:支持最新 PEP 标准的 Python 包和依赖项管理工具

一个现代的 Python 包管理工具,有简单且相对快速的依赖解析器,兼容 PEP-517 和 PEP-621,有灵活且强大的插件系统,支持安装 Python,像 pnpm 一样的中心化安装缓存,节省磁盘空间。(star 7K)

🐧 往年回顾

Python潮流周刊#3:PyPI 的安全问题 (2023.05.27)

Python潮流周刊#4:Python 2023 语言峰会 (2023.05.31)

支持 Python猫