写在开头: 周刊第三季早就完结了,也早就到了免费公开的时间,但是不知为何漏发了,所以现在补发出来……
我订阅了很多的周刊/Newsletter,但是发现它们都有一个共同的毛病:就是缺乏对往期内容的整理,它们很少会对内容数据作统计分析,更没有将内容整理成合集的习惯。
在自己开始连载周刊后,我就想别开生面,除了每周更新正刊外,还计划定期做一些盘点。我认为过往周刊值得被串联起来,形成合集后,既方便大家阅读检索,在这个 AI 时代,还能作为知识库的资料,能挖掘出更多有价值的信息。
Python 潮流周刊每 30 期作为一季,每季预计有 60,000 字以上。往季总结:第1季 、第2季
现在,第 3 季已完结,继续分享一些数据吧。第 3 季从 2024.07.20 到 2025.02.23,间隔时间 218 天。
本季周刊共分享了:
- 文章/教程:357 篇
- 项目/资源:362 个
- 播客/视频:21 则(有不少是视频列表)
- 热门讨论:19 个
每期周刊中分享的内容基本上保持了“12 + 12 + x”的水平,即 12 篇文章&教程,12 个项目&资源,另外穿插有少量音视频和热门讨论内容。

文章和项目类内容的占比都超过了 47%,今后分享的比重大概率会维持在这个比例。

利用本季周刊合集内容,生成的词云图如下:

人生苦短,我用 Python。
第3季合集内容也整理发布到了网盘里,链接如下:
1、百度网盘链接 提取码: 1024
2、夸克网盘链接 提取码:J2nq
网盘链接可能过期,若不可用,请在公众号“Python猫”里发送“W30”,获取最新下载链接。
61 PyPI 管理员密钥泄露事件
博客原文 | 发布时间:2024-07-20
🦄文章&教程
1、二进制密钥扫描帮我们防止了(可能是)你能想象到的最严重的供应链攻击
JFrog 安全团队发现了一起 PyPI 管理员密钥泄漏事件,它有极高的危害性,因为可访问 python、pypa、psf 和 pypi 组织下的 200 多个代码仓!管理员在源码中写了密钥,虽然最终删除了,但是缓存的 pyc 文件里却留下了密钥!只关心源码的安全扫描还不够,二进制安全扫描同样重要啊!
上一则事件的当事人(PSF 的基础设施总监)发布了事件报告,原来泄露的密钥大概在一年前就已提交了,所幸没有被人恶意利用!重要的经验教训是:密钥要设置合适的到期时间,构建 docker 镜像时记得排除 __pycache__ 和 *.pyc 文件,保证源码是干净的。
3、【网络安全】「漏洞复现」(六)探索 Python 中原型链的利用与污染
文章出自《从0到1学习安全测试》系列,通过对一个 Flask 网页的服务器端模板注入攻击,介绍 Python 的原型链利用和污染问题,希望读者了解 Python 中原型链的概念、机制和潜在的安全风险。
Python 3.13 版本还有 2 个多月就要发布了,实验性的无 GIL 特性想不想体验一下?文章介绍了 free-threaded-compatibility 仓库,提供了一些资源,也跟踪开源项目对 no-gil 的支持情况。还介绍了 numpy 和 pywavelets 发现的两个线程安全问题。
介绍了用profilehooks 库来检测 Python 代码性能,并用Snakeviz 和 gprof2dot 这两个可视化工具来分析数据,找到主要的性能瓶颈,最终实现有效的优化。
6、用 Python 和 Flask 中开发简单的 Pastebin 服务
Pastebin 是一种在线共享代码和文本的服务,文章介绍如何用 Flask 开发一个,支持粘贴文本、选择编程语言并生成共享 URL,详细解释了每部分代码的作用。(附:巧合的是,本周收到一则久违的开源项目投稿,使用异步 Flask 开发简单的 pastebin ,分享自@yuxiaoy1)
@Manjusaka 又给 CPython 修了一个 bug。Python 3.13 Beta 版本中,因为 PEP-683 的实现 + 周边的改动,导致低版本下编译的一些扩展无法在 Python 3.13 中运行。
8、分享一件有趣的事情,我帮 CPython 修复了一个 bug
@古明地觉 也给 CPython 修了一个 bug!是关于 Python 元组缓存池的问题,最终修改代码只是加了一个“=”号,但是从源码中发现问题和复现的过程,能加深你对 Python 解释器的理解。
写 Python 装饰器的时候,应该注意什么问题?文章告诉我们的答案是,一定要加上 functools.wraps ,不加的话,多次使用装饰器会出现重名问题。
10、2024 年,良好的 Python 项目结构是怎样的?
文章认为使用requirements.txt 、手动创建和进入 venv 虚拟环境、手动设置PYTHONPATH 、用 setup.py 构建扩展都是不好的做法,作者给出的是基于 poetry 库的一套项目管理方案。
11、如何用 PyTorch 从零开发和训练自己的 GPT-2?
想不想拥有一个自己开发出来的 GPT?是否好奇一个大模型是如何训练出来的?文章介绍并实现了大模型的基本组件,如分词器、数据加载器。(附:该系列的第二篇是 构建和训练 GPT-2)
12、万字浓缩版,Python 潮流周刊第 1 季的 800 个链接!
我们周刊第 1 季和第 2 季都分享了约 800 个链接,且每季都超过 6 万字,这个数据量足够惊人的!不知道有多少人是全都看过的呢?这篇文章将第 1 季的所有链接提取了出来,按照类型分类,可以方便没看过的读者快速浏览寻宝~
🐿️项目&资源
在你的 iPhone、iPad、Android、Mac 和 Linux 设备上搭建 AI 集群,支持 LLaMA 和其它流行的大模型,自动发现集群设备。(star 2K)
2、kaskade:Kafka 的 TUI 应用,在终端中管理和消费 topic
使用 Textualize 开发的文本用户界面,对 topic 进行管理和消费,支持 Protobuf 反序列化。

3、G-Scraper:完全用 Python 开发的 GUI 网络爬虫
利用 Requests + Beautifulsoup4 + PyQt5 开发的简单爬虫可视化项目,支持从多个 URL 中抓取多个元素,可处理登录/注册,具有完整的日志功能。
4、source2RSS:将信息源转 RSS 的 Python 框架
定期运行抓取器获得信息流,并更新对应的 RSS 源;或在 API 收到数据后,保存其数据,并生成 RSS 源。(分享自@AlterNao1)
支持对 Python 函数级运算过程自动保存、查询以及版本控制,可以单独存储和跟踪集合里的元素。

让你在代码运行时也可以更新代码,修改函数时,可同时影响所有调用的位置;修改模块时,只会重新运行被修改的代码行,不会加载整个模块。(star 1.1K)
面向生产的全栈解决方案,在许多公共语音数据集上取得了 SOTA 结果。(star 3.9K)
为大模型提供一个智能的、自我改进的内存层,从而实现跨平台、跨应用的人性化 AI 体验。(star 10.8K)
9、MinerU:一站式数据提取工具,支持 PDF/网页/多格式电子书
包含 Magic-PDF 和 Magic-Doc 两大功能,可将 PDF/网页或多格式电子书转换为 Markdown 格式。
10、promptdoc:管理多版本、场景和模型的提示词模板
基于 Flask + MongoDB 开发的提示词模板管理项目,支持基本的增删改查功能。
11、disposable-email-domains:一次性的电子邮件域名列表
包含近 4000 个一次性的域名邮箱地址,可用于注册虚拟用户。(star 2.7K)
12、fastembed:轻量级的 Python 库,实现最先进的嵌入
专为生成嵌入而开发的框架,支持流行的文本模型。无需 GPU 和 PyTorch 依赖项,使用 ONNX 运行时,领先于 OpenAI Ada-002。(star 1.2K)
🐢播客&视频
1、SE Radio 624:与 Marcelo Trylesinski 谈 FastAPI
出自 IEEE 计算机学会和 IEEE 软件杂志主办的播客节目,嘉宾是 Pydantic 的高级软件工程师,也是 Starlette 和 Uvicorn 等项目的维护者。话题集中在 FastAPI 的设计、实现和运用上。
2、The Python Show Python 42:Harlequin 终端里的 SQL IDE
Harlequin 支持在命令行终端可视化操作 SQL,这期播客嘉宾是这个库的作者,话题讨论了项目的起源、为什么写 TUI 而不是 GUI、有什么经验教训等。
🥂讨论&问题
1、我是 Python 后端开发,如何创建一个现代且高性能的前端?
来自 Reddit 的帖子,看看前端技术栈有哪些比较好/新的技术选择。HTMX 出现了很高的比例!
2、2024 年 Python 实现定时任务和延时任务,性价比较高的方案是什么?
来自 V2EX 的帖子,Python 任务管理的方案有哪些?
🐧 往年回顾
Python潮流周刊#11:如何使用 Golang 运行 Python 代码?(2023.07.15)
62 试用自由线程 Python
博客原文 | 发布时间:2024-07-27
🦄文章&教程
我们上期周刊分享过 free-threaded-compatibility ,作者也看到这个项目,于是安装体验,他用 CPU 密集型任务作测试,得到超高 CPU 使用率和性能提升。
2、PEP-751:一种列出 Python 依赖项的文件格式,确保可重复安装
本周新创建的一篇 PEP 草案,是已被拒绝的 PEP-665 的替代。它目标是定义一种标准文件,用于管理 Python 依赖项。社区里已有 pip freeze 、pip-tools、Poetry 和 PDM 等解决方案,这篇提案试图提出一种官方标准。
作者分享了自己在 Python 依赖/环境管理和相关工具使用的项目模板,以 Rye/Ruff 为核心工具,覆盖项目设置、linting、类型检查、测试、文档、CI/CD 等方面,以及管理 Monorepo 的相关配置。(附:作者 4 年前的一系列关于 Python 项目管理的文章)
即时搜索指的是在用户输入搜索内容时立刻显示搜索结果,无需等待页面重载,用户体验更好。这篇教程使用 Flask 和 HTMX 实现了简单的即时搜索功能。
5、Streamlit 101:Python 数据应用的基础
Streamlit 可使数据科学家轻松构建交互式数据应用。这是来自官方的入门教程,介绍了 Streamlit 的基本知识和使用方法等,包含 5 个实用示例。
6、使用 Python + ToolJet 开发一个 CSV 到图表的生成器应用
ToolJet 是一个开源低代码平台,Github 星星数超过 28K,支持运行 JS 和 Python 代码。这篇教程演示了如何用它设计用户界面、集成 Python 代码,利用 CSV 文件生成多种格式的图表。

文章分享了一些简单的技巧,让基于 FastAPI + Pydantic 的 REST API 运行得更快。
8、用 Django + daisyUI + TailwindCSS 开发一个项目
这篇教程分享了一个完整的 Python 全栈项目,功能是支持上传及合并多个 PDF 文件,支持登录和身份校验。
文章介绍了在使用 Python 生成器和异步生成器时,如何确保资源的清理和释放。介绍的方法包括内联生成器调用、用del语句或close方法显式清理、上下文管理器清理等。
10、用 Python 数据帧在笔记本电脑上查询 1TB 数据
使用 Pandas 处理较大数据量时,容易出现内存不足。作者测试了用 Pandas、Polars 和 Ibis(两种后端 DuckDB 和 DataFusion) 处理 1 TB,展示了 Ibis 在处理大数据量时的巨大优势。
在 Python 中处理日期时间时,需要关注时区问题,特别是将纪元时间戳转换为 datetime 对象时。推荐使用 datetime.utcnow() 而非 datetime.now() ,不依赖系统的默认时区配置。
Selenium 是一个使用广泛的开源 Web 自动化测试工具,这篇文章介绍了 10 个替代工具,简单介绍了它们的优缺点。
🐿️项目&资源
1、whenever:用 Rust 开发的 Python 日期时间库
Rust开发的类型安全的支持夏令时的 Python 日期时间库,拥有高性能,支持最新的 GIL 实验版本。

2、maelstrom:高速的 Rust 和 Python 测试运行器
在本地独立容器或分布式集群中运行测试,每个测试都在轻量级容器中运行,避免其它测试和环境的干扰。目前只支持 Linux。
在代码运行时检测一个 Python 对象的类型、格式化值、变量、方法、父类型、签名、文档,甚至是源码。
4、txtai:用于语义搜索、LLM 编排和大模型工作流的嵌入数据库
集多种用途一体的嵌入数据库,是向量索引、图网络和关系数据库的结合。可以用 SQL 进行向量搜索、主题建模、检索增强生成(RAG)等操作。(star 8.1K)
5、PraisonAI:将 AutoGen 和 CrewAI 等框架集成低代码解决方案
一种低代码、集中式框架,旨在简化各种 LLM 应用的多代理系统的创建和编排。支持自动创建 AI 代理,可与整个代码库聊天,多种用户界面。(star 1.8K)
基于 Web 的数据库客户端,支持 PostgreSQL、SQLite、MySQL、MariaDB 和 Oracle 等。支持可视化数据库性能指标、管理 PostgreSQL 服务器配置和备份等功能。

主要面向小孩子/初学者,以命令行终端作为开发环境,快速开发 2D 游戏。跨平台,不依赖显卡,激发想象力和创造力。
只需一行代码,即可为 AI 代理集成高质量的工具,支持 100+ 工具和大模型,支持 6 种不同的身份验证协议,可插拔设计。(star 4K)
利用 AI 读取屏幕截图作为输入,控制鼠标和键盘操作,像人类一样完成复杂的计算机任务,如玩游戏、浏览网页、发邮件、使用办公软件等。(star 1.4K)
10、lonboard:用 Jupyter 做地理空间矢量数据可视化
以 GeoArrow 和 GeoParquet 等尖端技术为基础,结合基于 GPU 的地图渲染,通过简单的界面交互,可视化大型地理空间数据集。
Python 开发的多协议网络蜜罐,对资源要求极低,可部署在树莓派。模拟一系列可通过网络访问的服务,检测到潜在威胁时,以多种方式发送告警。(star 2.2K)
AI 时代的 ETL 工具,加快数据管道开发。利用 pandas、DuckDB 和 LangChain 等库生成原生 Python 代码。支持自托管。

🐧 往年回顾
Python 潮流周刊#12:Python 中如何调试死锁问题?(2023.07.22)
63 开发 Python Web 项目
博客原文 | 发布时间:2024-08-03
🦄文章&教程
1、用 Vue 和 Django 开发 Web 项目的终极指南(2024)
如何高效将 Vue 和 Django 搭配起来使用,特别是小团队以低成本开发全栈项目时?作者主要介绍了在 1 台服务器上部署前后端服务的场景,介绍了资源绑定策略、服务端渲染 SEO 友好的 HTML、客户端增强 HTML 动态内容等话题。
2、用 Pyodide 和 React 开发可视化的低/无代码应用
出自 Pyodide 官方博客,开发了一个 Web 项目,让用户无需编码即可使用 pandas,同时支持 matplotlib 绘图和 scikit-learn 作线性回归。文章介绍了部分实现原理,演示了主要的功能。

Python 不像 Java 等语言可用 public/private 关键字来限定类函数的可见范围,我们用 __all__ 显式声明可被导出的内容,但这不是强制的。作者指出了它存在的问题,分享了一种强制 __all__ 声明内容不允许导出的方法。
4、为什么“python -m json”没用?为什么是“json.tool”?
“python -m json.tool xxx”用于在命令行中打印美化的 JSON 内容,为什么这个命令不是简化的“python -m json xxx”呢?作者探究了“-m”标记和json 库的早期发展历史,解答出了这个疑惑。
5、tea-tasting:对 A/B 测试作统计分析的 Python 包
作者开源了 tea-tasting 库,用作 A/B 测试的统计分析。文章详细介绍了这个库的特性和基本使用方法。
asyncio 事件循环通常在主线程中运行,但也可以在新线程或守护线程运行。文章介绍了在独立线程使用 asyncio 事件循环的三种方法。
众所周知,Python 有 GIL 会限制多线程和 CPU 密集型任务的性能。那么,该如何衡量 GIL 的影响呢?文章使用 eBPF 测量从请求到释放 GIL 锁的时间,检测它的耗时分布情况。
不久前,MicroPython 度过了 11 岁生日。作者是它的早期用户和布道者,文章解释为什么 MicroPython 是极其宝贵的黑客工具。
“git log”是用于查看代码仓提交记录的命令,那能否用它只查看某个指定函数的修改记录呢?文章介绍了“git log -L :<funcname>:<file>”的用法,可以针对性查看一个函数的演变过程。
10、OpenCV 和野生王国
作者用 OpenCV 开发了运动检测程序,用于在热成像仪上监测到底是谁偷吃了自家猫的食物?哈哈,竟看到了小偷有领居家的猫、负鼠和小浣熊!(猫猫一觉醒来发现自己的粮食被洗劫一空是种什么体验……)
🐿️项目&资源
新的下一代轻量级 Python Web 框架,集成 HTMX,可开发高速、可扩展、富有表现力的 Web 应用。(star 2.6K)以下代码开发一个简单的“Hello World”页面:
from fasthtml.common import *
app,rt = fast_app()
@rt('/')
def get():
return Div(P('Hello World!'), hx_get="/change")
serve()
2、datachain:使用本地 ML 和 LLM 来处理非结构化数据
AI 驱动,可并行处理千万级非结构化的多模态的文件,使用严格类型的 Pydantic 对象而不是 JSON,也支持离线操作。
一本面向无编程经验者的数据科学入门书,采用 Jupyter 笔记本的形式,可在线阅读、修改代码、运行和测试。
4、treescope:IPython 笔记本中将 HTML 内容作交互式查看
专为 IPython 笔记本中的机器学习和神经网络研究而设计,可扩展和折叠子树,提供复制按钮,自动将任意维数组可视化。
创建商业或个人名片,可分享链接和二维码,可统计名片的访问数据。
用 PyGame 开发的复古像素风绘图工具,包含工具栏、菜单和鼠标快捷操作。

7、cloudflare-noip:免费替代付费的动态 DNS 服务
使用免费的 Cloudflare 帐户和本地 cronjob 自动更新 Cloudflare 上的 DNS 记录,替代付费的动态 DNS 服务。
8、peerfetch:基于 WebRTC 的点对点 HTTP
通过 WebRTC DataChannel 实现 http 客户端包装器和相应的服务端 HTTP 代理,可从 Web 浏览器直接安全访问隐藏在防火墙后的边缘设备(IoT 或服务器)。
下载、更新、管理和播放 YouTube 视频,带有统计报告、关联时间戳和永久链接的注释、支持浅色和深色模式。(star 2K)
10、patchwork:用 LLM 自动审查代码、改 BUG 和写文档
用 AI 改善你的编程工作流,可在 CLI 和 IDE 中运行,也可作为 CI/CD 管道的一部分。有开箱即用的常用工作流模板,也可支持自定义工作流。
11、RestrictedPython:运行不可信 Python 代码的受限执行环境
这不是沙盒系统或安全环境,但它可以定义可信的环境并在其中执行不可信的代码。仅支持 CPython,不支持其它实现。
12、metahuman-stream:实时互动的流媒体数字人
实现音视频同步对话的数字人,支持多种数字人模型(ernerf、musetalk、wav2lip),支持声音克隆、说话被打断、全身视频拼接、视频编排等。(star 2.3K)
一个简单易用的自动识别、翻译和视频辅助工具,可快速识别视频字幕、翻译字幕、辅助图文,支持多种语言和文件格式,支持 AI 总结问答,等等。

🥂讨论&问题
Reddit 热帖。作者发现一些流行的库(FastAPI 和 PyTest)并不遵循“explicit is better than implicit”原则,反而用了不少隐式行为和不易观察的魔法操作。为什么会出现这种情况?是这条原则有问题么?
有什么新的、有趣的、不为人知但却实用的 Python 库可推荐的?我们周刊分享过很多,这则帖子下也有很多!(附:作者还在 Hacker News 问了同样的问题)
🐧 往年回顾
Python 潮流周刊#13:Jupyter Notebook 7 发布了,无 GIL 提案传来大好消息!(2023.07.29)
64 Python 的函数调用还很慢么?
博客原文 | 发布时间:2024-08-10
🦄文章&教程
在 Python 中调用内置函数和普通函数,性能差距有多大?将函数调用改为内联代码会有提升么?从 Python 3.10 版本以来,函数调用方面做了哪些改进?文章解读了字节码和 Python 解释器源码,深度回答了函数调用相关的性能问题。

在分布式日志记录中,如何有效给日志标记上下文信息(如用户 id)?手工传递上下文信息会很麻烦,文章介绍了如何开发一个中间件,自动在日志里记录调用链的上下文信息,提高代码的可维护性。
2024 年 PyCon US 活动的官方回顾来了,18 页报告分享了参与人数、观众来源、活动回顾、精彩照片等内容。
API 集成指的是将不同系统和应用连接起来,打通数据壁垒,改进业务流程。Zato 是一个基于 Python 的 API 和数据集成平台,这篇教程详细介绍了它的特点和使用方法。
已收录 25 篇 Python 热点话题组成的系列文章,涵盖话题:从 Python 的新特性,到热门的第三方库的介绍(Python in Excel、PyScript、基于 Rust 的 Polars、uv),再到 Python 的应用场景(Sphinx 部署文档、Cloudflare Workers 部署无服务器的 Python 代码)。(分享自@NoHeartPen)
作者介绍了自己开发的一个在线工具,可基于你想要的日期/时间描述,快速生成一个格式化的时间字符串。
7、django-http-debug,一个新的 Django 应用程序
作者开发了一个新项目 django-http-debug,可快速设置一个 URL,返回固定的 HTTP 响应,并将所有请求数据记录到数据库中。文章介绍了它的工作原理、如何用 Claude 辅助开发和对于 LLM 辅助开发的体会。
这篇教程介绍如何用 PyTorch Lightning 作深度学习模型开发,涵盖环境设置、模型训练和实际示例,非常适合初学者。
Python 的 ast 模块是用 C 语言开发的,但是作者发现它与 Python 解释器交互时有大量内存分配与垃圾回收,导致耗时较长。作者引入 Rust 优化,将耗时从 8.7 秒提升到 530 毫秒。

“不要重复自己”(Don’t Repeat Yourself)是一条常见的编码原则,但是这篇文章想引发思考:重复代码是否真的多余,它们是否会独立演化?不要过早优化重复代码。
作者分享了对自己较有启发的 10 多篇关于编程的文章,并摘录了一些核心观点。这有点像是一期优质文章分享的“周刊”了,推荐一读。
🐿️项目&资源
1、zato:Python 中的 ESB、SOA、REST、API 和云集成
对业务系统、API、工作流甚至硬件资产做自动化、集成与编排。(star 1.1K)
2、segment-anything-2:Meta SAM 2 模型推理代码
Meta 开源用于解决图像和视频中提示词视觉分割问题的基础模型。(star 9K)
一个酷炫的进度条库,显示实时进度、高效的多线程处理、准确的预计完成时间、处理结束时打印漂亮的汇总、支持暂停、高度可定制。(star 5.3K)

针对网络摄像头的漏洞扫描框架,目前已集成海康、大华、宇视、dlink 等常见设备。(star 1.6K)
5、Deep-Live-Cam:实时换脸和一键式视频 deepfake
只需一张脸部照片,实现目标图像或视频的换脸!(star 2.9K)
6、annotated_deep_learning_paper_implementations:60 篇深度学习论文的实现/教程,附注释
神经网络和相关算法的简单 PyTorch 实现的集合。(star 52.8K)
7、table-transformer:从非结构化文档(PDF 和图像)中提取表格
一种基于对象检测的深度学习模型,可从 PDF 和图像中提取表格。(star 2.1K)
8、wsgidav:基于 WSGI 的通用且可扩展的 WebDAV 服务器
基于 WSGI 的 WebDAV 服务器,是一个高性能的多线程 Web 服务器,支持 SSL,可在 Linux、OSX 和 Windows 上安装运行。
表现出色的语音检测工具,JIT 模型大小仅 2 MB,基于 6000 多种语言的庞大语料库训练,支持 8000 Hz 和 16000 Hz 采样率。(star 3.6K)
10、textual-serve:在本地将 Textual 应用变为 Web 应用
在本地启动 Textual 服务端,可将基于命令行的 Textual 应用变为 Web 应用。不同于 testual-web 在公共 URL 上提供 Textual 应用,这个项目可自托管。
11、geopandas:用于处理地理数据的 Python 工具
一个向 pandas 对象添加对地理数据支持的项目,实现了 GeoSeries 和 GeoDataFrame 类型,可对几何对象作操作。(star 4.4K)
一个用于教学、培训和使用的语音合成模型的工具包。基于纯 Python 和 PyTorch,简单而适合初学者。(star 1.3K)
在文本文件中定义财务交易记录,在内存中读取,并生成各种报告,并提供 Web 界面。(star 3.6K)
🐢播客&视频
1、Ep 48. 专访高天:为了当好 B站 up主,我成为了 Python 核心开发者
短短一年成为 Python 核心开发者,高天太赞了!我的体会是,少花时间在纯娱乐上,每周抽出几个小时发展兴趣,做一点点让自己与众不同的事,这不一定能达成什么功利性目标,但至少让自己活得有意义了。
🐧 往年回顾
Python 潮流周刊#14:Lpython 高性能编译器、Python 与 JavaScript 实现互通(2023.08.05)
65 CSV 有点糟糕
博客原文 | 发布时间:2024-08-17
🦄文章&教程
众所周知,CSV 文件使用逗号分隔内容,但这对于存在逗号、分隔符和换行符等情况不太适用,文章建议使用 ASCII 的通用分隔符作为替代,可以处理复杂数据,避免格式出错。
2、用 Scrapy 和 Playwright 实现无限滚动页面的抓取
介绍了用 scrapy-playwright 插件实现无限滚动网页的内容抓取,包括如何配置、处理 CORS 问题、滚动抓取的原理解析、详细的实现代码。
介绍了如何用 pytest-cov 计算代码库的测试覆盖率,并用 nox 等工具对不同版本的 Python 和库进行组合测试。既测试代码本身,也测试它与整个 Python 生态的集成。
Fastcore 的作者介绍了这个库的主要功能,它主要用于扩展 Python 的能力,包括:使**kwargs 透明化、设置实例属性时规避样板代码、避免子类的样板代码、类型分派、更好的 functools.partial、更有用的 __repr__,等等。
5、Knuckledragger:一个半自动的 Python 校验助手
作者开发了 Knuckledragger,是一个基于 Z3 的半自动 Python 校验助手,文章介绍了它的基本设计原则、核心原理、理论和应用、支持的主要功能,等等。
6、优化 PyTorch Docker 镜像:如何将大小减少 60%?
在集群上训练神经网络时,常用 Docker 容器打包所有依赖项。通用配置的镜像大小达 7.6G,文章介绍了几项优化配置,可节省 60% 的空间。
求和类型(Sum Types)是类型理论中的概念,将不同的类型组合成一种单一类型。Python 不支持这种类型,文章介绍用 Pydantic 的 unions 和 TypeAdapter 来实现一个相似的类型,并完成 JSON 序列化和反序列化。
这是新发起的一个提案(草稿状态),可视为 f-string 的扩展,类似于 JavaScript 的标签模板字面量,使用自定义的函数代替“f”前缀,实现更丰富的功能,如安全检查、延迟计算、Web 模板等。
textual 框架已经很流行了呢,Github 星星近 25K。这篇文章是框架作者写于 2022 年的,分享了 7 个观点:终端速度很快、DictViews 非常棒、lru_cache 速度很快,等等。
10、通过 GDB 用 PDB 调试运行中的 Python 脚本
如何在 Linux 上调试正在运行的 Python 脚本?文章介绍了用系统原生调试器 GDB 的 attach 命令,以及 Python 自带的调试器 pdb 来调试 Python 脚本。
Copy-on-Write 是一种提高内存使用率的优化技术,Pandas 2.0 已经支持了,但未完全实现。文章介绍了如何启用 CoW,以及它对 Pandas 到底有哪些好处、启用与不启用 CoW 的差异。
12、3.5 亿 Token 不会说谎:Hacker News 中的爱与恨
分析了 Hacker News 从 2020.1 至 2023.6 的所有帖子及其不少于 5 条评论,利用 LLama3 70B 从不同维度对这些内容做统计。用到的框架是 Netflix 开源的 metaflow,文章介绍了使用的工作流和提示词。

🐿️项目&资源
用 Rust 开发的高性能邮件校验库,比传统工具(如 python-email-validator、verify-email 和 pyIsEmail)快 100-1000 倍。
向 Python 中添加其它语言的优秀特性,如 Julia 的 multiple dispatch、Ruby 的 mixins,以及 Haskell 的 currying 和 binding 等;同时添加了不少有用的功能。
3、scrapy-playwright:Scrapy 的 Playwright 集成
集成 Scrapy 和 Playwright 的优点,遵循 Scrapy 的常规工作流,可很好处理 JavaScript 相关的内容。支持协程和 asyncio。
4、DELTADB:基于 Polars 和 DeltaLake 的数据库
用 Python 开发的轻量级可扩展数据库,提供基本的数据库操作和版本控制,由 polars 和 deltalake 提供高性能支持。
由相互协作的多个代理组成的 AGI,具备自我进化能力,可根据需要构建出新的代理来完成特定的任务。
6、llm_aided_ocr:用 LLM 矫正扫描版 PDF 的 OCR 结果
利用自然语言和 LLM,提升 OCR 对扫描版 PDF 文件的扫描准确度,将结果转换为格式良好且可读的文档。(star 1.2K)
7、translation-agent:使用反省工作流的翻译代理
Andrew Ng 开源的用于机器翻译的工作流,基本流程是先让 LLM 翻译,然后再让它提出修改建议,最后基于建议作修改。(star 4.4K)
这是一个在线学习 Python 的网站,包含一系列课程、视频、PPT 材料和参考资料等,另外发布在 Coursera、edX 等平台,参加课程可获得证书。
9、unstract:无代码 LLM 平台,启动 API 和 ETL 管道
利用 LLM 启动 API,将复杂的文档转换为结构化 JSON,或者启动 ETL 管道,从云文件/对象存储系统中读取复杂文件,并将结构化数据写入数据仓库和数据库。
10、tokencost:轻松估算 400+ LLMs的 token 价格
这个库提供了 400+ 主流 LLM 的 token 花费计算能力,跟踪最新的价格变化,有效管理对接 LLM 的成本。(star 1.3K)
11、PyOptInterface:Python 作数学优化的高效建模接口
数学优化建模,性能超过了 Pyomo 和 JuMP.jl 等,适合大规模数学优化问题(线性规划、二次规划、混合整数线性规划等)的建模和求解。
12、metasequoia-sql:注重性能的 SQL 语法解析和分析器
适用于 SQL 的格式化、执行和分析场景,致力于打造性能最高的 Python 版 SQL 解析器,包含词法树解析、语法树解析和语法树分析等功能。
🐧 往年回顾
Python 潮流周刊#15:如何分析异步任务的性能?(2023.08.12)
66 Python 的预处理器
博客原文 | 发布时间:2024-08-24
🦄文章&教程
作者认为 Python 拥有所有语言中最好的预处理器,文章介绍了如何实现自定义编解码器来扩展 Python 功能,例如支持递增递减运算符、支持使用大括号、支持执行 C/C++ 代码等。
Scrapy 爬虫的统计信息(如请求数、响应数、运行时间等)可用于监控性能,文章介绍如何开发一个 Scrapy 扩展,通过 SQLAlchemy 将日志写入到数据库中。
3、2024 年了,是 Gevent 还是选择 asyncio Part 1?
选择 Gevent 还是 asyncio?文章在主流 Web 框架(如 Django、FastAPI、Flask、Starlette)下测试随机读写数据库,发现在 ORM + MySQL Driver 的情况下,Gevent 的生态要好于 asyncio 的生态。
代码混淆是保护/隐藏源码的一种手段,文章深入介绍了 Python 中代码混淆的几种初级和高级的技术,包括变量/函数重命名、字符串加密、使用元编程、代码注入等。
该 PEP 提出了一种机制,允许组织为将来的上传预留包名前缀,用意是解决依赖混淆攻击的问题,并降低包名拼写错误抢注的发生率。
介绍了 GIL 的一些历史,它如何影响 Python 的 C API 设计和多线程性能,目前实现的一些技术改进,以及讨论了如何将 PEP-684 和 PEP-703 协同工作。
查询语言是用于从数据库或信息系统检索信息的语言,这篇教程实现的是简单的歌词查询语言。介绍了查询语言的优点、组成部分、语法设计、解析执行等内容。
作者分享自己开发电子表格引擎的经验,将表格视为图,其中单元格是节点,利用拓扑排序来计算单元格的依赖关系和求值顺序,实现公式计算功能。
9、用 n8n、Telegram、在线表单和 Python 实现 Web 自动化
n8n 是一个工作流自动化工具,可连接各种应用、服务和 API。作者介绍他如何用 n8n 来编排 Python 爬虫、Telegram API 和邮件,实现任务自动化处理。

10、Rye 和 uv:八月是 Python 打包的丰收季节
Rye 项目移交给 Astral 半年了,Rye 与 uv 的融合越来越多,作者认为 uv 很快能成为打包工具的首选。文章也回顾了 Python 打包生态的发展,现今种类繁多的工具或许很快能诞生王者了?
LangChain 提供了与模型无缝集成、上下文管理和提示词工程的工具,可简化对话式聊天机器人的开发。文章介绍了它的工作原理,如何逐步开发一个带上下文的聊天机器人。
出自 Red Hat 官博的 GPU 编程系列,利用 GPU 的并行处理特性,实现 GPU 加速版的快排算法,文章解释了详细的计算过程。
🐿️项目&资源
用本地或 API LLM 与当前目录下的所有文件聊天,使用上下文引导的检索增强生成技术。
Lark Ticket 是飞书中用于创建和管理工单的功能,这个项目是它的扩展,增加了审批单提交时检查、结束时调用 API、审批字段转 API 字段等功能。(分享自@请叫我大萌萌)
3、py5book:py5 的 Juypter book 仓库
Processing 是基于 Java 的开源编程语言和 IDE,py5 是将它与 Python 生态集成的工具,可与 Jupyter、numpy、matplotlib、Pillow 等库集成使用。
高效的音频处理工具,内存占用小,使用类似于 numpy 的语法,支持复杂的音频操作,适合数据加载和 ETL。
5、RAG_Techniques:关于检索增强生成(RAG)的各种先进技术
全面的 RAG 技术合集,包含最先进的 RAG 增强功能、各种技术文档、实践指南、定期更新的最新进展等。(star 2.4K)
一个综合性数据标注平台,专为处理多模态数据而设计,提供了一系列高级注释工具和高效的工作流程,可导出多种数据格式的结果。
在电脑间传输任意大小的文件和目录,发送端生成一次性的口令,接收端输入它来完成认证。(star 19.8K)(附:该项目在 2016 年 PyCon 的演示文稿)
利用计算机视觉和机器学习实现的数据解题工具,自动在数独空格上填充所有答案数字。
第一个免费且完全开源的金融平台,提供对股票、期权、加密货币、外汇、宏观经济、固定收益等内容的访问。(star 29.2K)
AI 与人类协作编程、修复 bug 并发布功能。写更少代码,创造更多价值。(star 30.6K)

开源的身份认证和授权服务,提供了一套全面的解决方案,支持多因素认证、单点登录、基于角色或属性的访问控制、插件系统、自托管、审计与日志等。(star 11.9K)
12ft.io 是一个神奇的网站,可移除网页的弹窗、横幅、广告和付费墙,让你干净浏览。这个项目是它的开源替代,可自托管。(star 2.3K)
🐢播客&视频
1、Talk Python To Me #472:2024 年 Flask 和 Pallets 的状态
Flask 是主流的 Web 开发框架,现今发展得如何了呢?Pallets 组织维护着 Flask 以及 Jinja、Click、Werkzeug 等库,目前情况如何?播客嘉宾是 Flask 的首席维护者 David Lord,聊了项目维护及改进、社区活动、Flask 与 Quart 的融合等话题。
🐧 往年回顾
Python 潮流周刊#16:优雅重要么?如何写出 Pythonic 的代码? (2023.08.19)
67 uv 的重磅更新
博客原文 | 发布时间:2024-09-01
🦄文章&教程
uv 又推出了重大更新!不仅作为 pip 的替代,还扩展了 Python 项目管理、命令行工具、单文件脚本以及 Python 本身的端到端解决方案。(附:UV 更新和 PEP 723:简化 Python 打包和脚本编写 )
2、PyJWT 和 python-jose 在处理 JWT 令牌时的差异
PyJWT 和 python-jose 是用于处理 JWT 的 Python 库,但它们在功能范围和设计哲学上有一些重要区别。文章介绍了它们的差异,以及在项目中使用 FastAPI + python-jose 来处理 JWT 的一些例子。
3、Kindle + Python = 电子墨水屏面板(第 1 部分)
如何在 Kindle 上安装 Python?文章介绍了一种硬件越狱的方式,成功利用 KUAL 将 Python 安装到 Kindle Paperwhite 3 上,并在上面运行脚本,成功收获一个电墨水屏仪表板。
Ibis 是一个开源的数据分析和可视化库,从 10.0 版本开始将删除 pandas 和 dask 后端,改为推荐 DuckDB 后端。文章介绍了当初为何选 pandas,以及 pandas 带来的痛苦。(附:ibis 是朱鹭的意思)
作者加入了 Google Summer of Code 活动,本文回顾了他在强化 CPython 编译器时所做的事,包括启用编译器选项、开发工具追踪告警、解决现有告警的计划以及吸取的经验教训。
动态代码生成,简称 codegen,是一种在程序运行时生成新代码的技术。文章介绍了什么时候应该使用它、一个真实将生产系统的速度提升 2 倍的例子、错误的和正确的使用方法。
7、PortaOne 如何用 PyPy 作高性能处理,每月接通超过 1B 的电话
PortaOne 是一家服务于电信运营商的公司,使用 Python 开发它们的核心中间件。文章简要介绍它的功能实现、使用 PyPy 提升性能以及在使用中发现的重大 BUG。
介绍了 10 种优化 Python 代码的方法,编写更高效高性能的代码,例如变量打包、多用内存减少磁盘 I/O、固定长度及可变长度变量、内部函数与公共函数,等等。
9、Windows 中 Python 程序的 NTLM 凭据盗窃
NTLMv2 哈希盗窃是一种常见的凭据收集技术,文章披露了 3 个流行的 Python 库(Gradio、Jupyter Notebook 和 Streamlit)中可能导致凭证泄露的 SSRF 漏洞,详细解析了造成这些漏洞的代码。
发布于 2017 年的 Flask 源码解析系列文章,解析了 0.12 版本。涵盖主题有应用启动流程、路由、上下文、请求、响应和 session,对深入理解 Flask 有所帮助。(分享自@un4gt)(附:本则分享者的快速初始化 Flask 项目的脚手架 flasky-cli)
11、pip 24.2 有什么新增功能? 为什么弃用可编辑安装?
pip 核心团队成员介绍了 24.2 版本中值得注意的变化,包括弃用了可编辑安装、默认使用系统的 HTTPS 证书、多项性能优化、pip check 规则变严格、配置 pip 仅在激活的虚拟环境中使用。
HTMX 在 Python 社区的出镜频率越来越高了,往期周期里分享过不少。本文作者对 HTMX 的流行起到关键作用,作者回顾了自己接触和推广 HTMX 的经过、产生的影响、以及回答了大家提出的一些问题。

🐿️项目&资源
受 Caffeine 启发的高性能缓存库,Rust 核心,使用 W-TinyLFU 和 Clock-Pro 驱逐策略实现高命中率,使用分层计时器自动删除过期数据。
2、picows:超高速 websocket 客户端和服务端
使用 Cython 实现的库,为构建 asyncio WebSocket 客户端和服务端而设计,性能比 aiohttp 还快近 2 倍。
3、microrabbit:用于 RabbitMQ 的轻量级异步 Python 框架
轻量级 RabbitMQ 处理框架,可简化微服务和分布式系统的构建,功能包括简单的消息路由、支持插件和直观的客户端配置。
4、wave:用于 Python 和 R 的实时 Web 应用和仪表板
用纯 Python 或 R 构建美观、低延迟、实时、基于浏览器的应用和仪表板,无需 HTML、Javascript 和 CSS。(star 3.9K)

一个简单易用的库,类似于 GitHub Copilot,可与任何公共或私人代码仓聊天。
6、django-currentuser:在线程或数据库存储用户请求信息
方便地管理对当前请求用户的引用,支持线程和数据库存储方式。
7、intelligent-trading-bot:基于机器学习和特征工程的智能交易机器人
用最先进的机器学习 算法和特征工程自动交易加密货币,以批量离线模式分析历史数据并训练模型。
记录图像、张量、点云和文本等多模态数据,实时可视化,可用于机器人、仿真、计算机视觉等涉及大量传感器或随时间变化信号的场景。(star 6.2K)
为视频生成提供用户友好和高性能的基础设施,支持训练、推理、服务和压缩的整个流程。(star 1.6K)
仓库收录了构建知识图谱的基础知识、构建理论、构建实战等话题的论文/博客资料,从理论到实现。(star 1K)
11、terminaltexteffects:终端视觉效果引擎
终端视觉效果引擎,可作为系统程序安装并在终端中生成效果,也可作为 Python 库安装并在 Python 脚本/应用中启用效果。(star 2.7K)
一个简约可定制的 RAG UI(基于 Gradio),用于与文档聊天,支持查看 RAG 管道的运行情况。(star 5.8K)

🐧 往年回顾
Python 潮流周刊#17:Excel 终于支持 Python 了、Meta 重磅开源新项目、Mojo 新得 1 亿美元融资(2023.08.26)
68 2023 年 Python 开发者调查结果
博客原文 | 发布时间:2024-09-07
🦄文章&教程
Python 官方的第 7 个年度开发者调查结果公布了,近 200 个国家和地区的 25000 多名 Python 开发者参与了问卷调查,看看这一年有什么新趋势、哪些东西变了以及哪些东西如旧?
2、为什么在 Docker 中我仍然要用 Python 虚拟环境?
在使用 Docker 开发 Python 项目时,还有必要用虚拟环境么?作者的建议是用,文章分享了几点原因:目录结构的可预测性与熟悉度、统一标准方便沟通、减少导入代码的查找、等等。
作者是个计算生物学家,分享了自己用 Python 作数据分析的相关经验,包括虚拟环境、依赖包管理、模块管理、编程实践建议等内容。
如何用最短时间处理包含十亿气象数据的文件?作者用 Python 做了这个挑战,在本地环境从 8 分钟优化到半分多钟,分享了一些 Python 优化技巧。
通过一个准备咖啡与茶的例子,介绍了 Template Method 设计模式的使用,用于创建灵活且可重用的代码结构,更易于维护和扩展。
Python 标准库中的“冷门”部分,有几个其实挺常用,比如collection 和 contextlib ,但也有确实很少见的如fractions 、webbrowser 和 zipapp 。
有两种常用的缓存策略:基于时间和最近最少使用。文章介绍了这两种缓存方案,并从头用 Python 实现了一种缓存算法,将两种缓存策略结合起来。
深入探讨了 CPython 虚拟机的设计和实现,包括字节码格式、解释器的字节码求值循环,以及如何使用栈帧和计算跳转技术来优化性能。最后分析了一个简单的 Python 程序的执行过程,展示了虚拟机如何管理和执行编译后的字节码。
9、我们如何用 chDB 使得查询 Pandas DataFrames 的速度提高 87 倍?
chDB 是 ClickHouse 的嵌入式版本,在进程内运行。它的 2.0 版本比 1.0 版本查询 Pandas DataFrames 快 87 倍,文章解释了是如何做到的:减少序列化及反序列化的步骤、直接读取 Python 对象、批量数据复制以及用 C++ 重写 Python 字符串编码和解码逻辑。
初学者在 macOS 上安装 Anaconda 后,可能找不到运行官方 Python 的方法。文章介绍了一种简单的解决方案,将 .zshrc 文件移出主目录来摆脱 Anaconda 对 Python 环境的控制。
11、用 tracemalloc 计算 Python 分配的总内存
tracemalloc 是 Python 的标准库,可跟踪内存分配。文章介绍用它实现简单的内存估算函数,与 sys.getsizeof() 对比,并查看了 import numpy 的内存大小。(附:Python 在计算内存时应该注意的问题?)
高效的优秀软件工程师有哪些习惯?作者总结了一些重要的点,例如不仅关注代码本身、追求效率、修补的乐趣、系统性思考、知识迁移、简化处理复杂问题,等等。
🐿️项目&资源
以交互式方式在 Jupyter Notebooks、Jupyter Lab、Google Colab 和其它支持 HTML 渲染的笔记本中可视化决策树。

2、kazam:AI 赋能的 Linux 录屏、广播、截屏和 OCR
一个多功能工具箱,支持屏幕录制、音频录制、广播、OCR、网络摄像头等功能。
3、python-training:面向业务分析师和交易员的 Python 培训课
来自摩根大通的面向业务分析师和交易员的 Python 培训课程。(star 5.7K)
4、pymobiledevice3:用于 iDevices 的纯 python3 实现
用于与 iPhone 等设备交互,支持设备发现、TCP 端口转发、查看 syslog、APP 管理、文件管理、固件更新、通知监听与触发、截图、备份等。(star 1.3K)
用小爱音箱播放音乐,音乐使用 yt-dlp 下载。支持多项口令,多种音箱设备,以及多种音乐格式。(star 1.4K)
可自定义番茄钟,严格防分心(禁用可能干扰专注的组合键、防止鼠标移到屏幕边缘),强制全屏,用户友好的界面。
专为抢占式并发和并行而设计,使用线程池实现并发,并扩展到多进程以实现并行。线程池支持空闲自动收缩。
8、tinystatus:用 Python 脚本生成状态页面
简单可自定义的状态页面生成器,可监控各种服务的状态,如 HTTP 接口、ping 主机、检查端口等。
构建知识图谱,并表示出实体间随时间变化的复杂关系。支持提取非结构化和结构化数据,可通过时间、全文、语义和图形算法等方法来查询生成的图形。
10、librosa:用作音频和音乐分析的 Python 库
功能强大的音乐及音频分析工具。(star 7K)
11、Nettacker:自动渗透测试框架-开源漏洞扫描程序-漏洞管理
旨在自动收集信息、扫描漏洞并生成报告,包括服务、bug、漏洞、错误配置等信息。利用 TCP SYN、ACK、ICMP 和其它协议来检测和绕过防火墙/IDS/IPS 设备。(star 3.3K)
12、HivisionIDPhotos: 一个轻量级的AI证件照制作工具
智能的证件照制作工具,可实现轻量级抠图、生成不同尺寸证件照。(star 7.2K)

🥂讨论&问题
1、GoLang 和 Python ,哪个更适合做 Java 程序员的第二语言?
2、0 基础自学 Python ,这个付费 Python 课程如何?请大佬给点建议
🐧 往年回顾
Python 潮流周刊#18:Flask、Streamlit、Polars 的学习教程(2023.09.02)
69 是时候停止使用 Python 3.8了
博客原文 | 发布时间:2024-09-15
🦄文章&教程
Python 3.8 发布于 2019 年 10 月,将在今年 10 月 End Of Life,之后即便有安全漏洞,也不会再发布修复版本!一些三方库和框架,也将停止对 Python 3.8 的支持,因此,尽快升级到较新版本吧。(附:下个月要发布 Python 3.13 了,什么时候升级到 Python 3.13 比较好?)
如何让一个库同时依赖多个版本的其它库,例如 pydantic 1.x 和 2.x?作者在思考它的可能性,并提出了一种端到端的解决方案,讨论了需要解决的技术问题。
作者决定将自己的 Pandas 项目切换到 Polars,文章解释了这么做的原因:起决定作用的并不是因为 Polars 更快,而是因为它语法直观,更易于记忆和使用。文章对比了 Polars、Pandas、Tidyverse 和 Base R 处理 CSV 文件的代码。
4、我们如何将 Jupyter Notebook 的加载速度提高 10 倍?
作者的产品中嵌入了 Jupyter iframe,加载耗时很长。通过将 JupyterLab 的 UI 与后端服务分离、并行加载、模拟静态请求、预渲染扩展 UI 等措施,最终得到 87% 提升。
作者提出一个疑问,异步IO(非阻塞IO)算得上是“十亿美元错误”么?在平行宇宙中,如果我们花的二十年是在提升操作系统的线程性能,会不会有更好的结果?
用不同的 Web 框架来开发相同功能的项目,能够看出些什么?作者分别用 FastAPI + Jinja + HTML + CSS + JavaScript、FastHTML、Next.JS、SvelteKit、FastAPI + Svelte 做了实验。FastHTML 的表现让人眼前一亮。
7、用 Weaviate 和 Streamlit 开发一个电影推荐应用
Weaviate 是一个 AI 原生数据库,可简化数据存储、检索和查询的复杂性,并与 AI 模型集成。文章介绍用它和 Streamlit 开发一个接受自然语言的电影推荐应用,支持关键词、语义和混合搜索模式。
能否通过在本地缓存 PyPI 数据来改进 CI 系统?作者探索了两种方法:在构建期间挂载缓存,使用代理服务器 Proxpi。介绍了如何使用 Docker 和 Docker Compose 来设置Proxpi。
作者遇到了一个 Unicode 问题,因为连字符在视觉上与减号相似(HYPHEN-MINUS 和 HYPHEN),导致负数金额错误使用了连字符而被解析为正数。文章介绍了如何用标准库 unicodedata 来识别和区分这两种符号。
Rust 在数据工程的特定任务重越来越受欢迎,例如 Polars,但是由于它代码冗长,在许多场景中并不及 Python 的简单易用。文章作了简单代码对比,能看出 Python 在快速开发和原型设计中更具优势。
11、Go 与 Python 无服务器应用:性能、成本和易用性
Serverless 让开发者关注于开发应用,而无需担心底层的基础设施。那么,Go 和 Python 在无服务器应用开发中,有何优劣呢?文章从三个维度对它们作了比较。
12、Google Trends API 替代方案:维基百科网页浏览统计
Google Trends 没有官方的 Python API,但非官方的 API 并不可靠,因此作者寻找替代方案来了解搜索及话题趋势。文章介绍了维基百科相关 API 的使用。
🐿️项目&资源
面向开源和独立开发者的一体化的资金和商业化平台,售卖数字产品和订阅制产品,包括 Github 代码库、Discord 频道、文件下载和许可证等。(star 2.6K)
用于快速原型设计和开发实时渲染技术。包括编辑器、查看器和编译器三个组件,支持 DirectX 12 代码生成。
一种保存结构化数据的文件格式,与 JSON 类似,可直观输入、编辑和查看。只支持字符串类型,不支持其它类型(整数、实数、布尔类型等)。
一个命令行工具,可播放音频。支持 YouTube、YouTube Music 和 Spotify 的歌曲,支持歌词、剪辑、按标签过滤、统计数量、音频可视化、音乐发现。

将代码仓的文件转储到单文件中,便于在 RAG 和 LLM 中使用。支持整个代码仓、遵循 .gitignore、可按文件类型筛选。
6、edx-platform:Open edX LMS 和 Studio
一个面向服务的平台,用于编写和提供任意规模的在线学习。提供内容管理服务和学习管理服务。(star 7.3K)
7、langflow:用于 RAG 和多代理 AI 的低代码应用开发工具
基于 Python,与模型、API、数据源和数据库无关。可视化 IDE,支持拖拽。多代理编排和对话管理。集成 LangSmith、LangFuse 和 LangWatch,实现可观测性。(star 28.3K)
简化了网络爬取和数据提取,使其可用于大语言模型和 AI 应用。支持同时爬取多个 URL、提取所有内外部链接、在爬取前执行自定义 JavaScript、支持 CSS 选择器。(star 2.7K)
9、litecli:SQLite 的 CLI,支持自动补全和语法高亮
用 Python 开发的 SQLite 命令行客户端,支持常规数据库操作、自动补全命令、语法高亮。(star 2.5K)
提供安全的方式来处理 XML 文件,通过修改标准库中的 XML 解析器,移除可能导致安全漏洞的功能。
11、sail:使命是统一流处理、批处理和计算密集型 (AI) 工作负载
在单进程设置中提供了 Spark SQL 和 Spark DataFrame API 的直接替代品。
当出现中断或崩溃,它会自动从最后完成的步骤恢复,达到持久执行的效果。使用 Postgre 保存执行状态,用 OpenTelemetry 跟踪工作流。
🐧 往年回顾
Python 潮流周刊#19:Mojo 终于提供下载了!(2023.09.09)
70 微软 Excel 中的 Python 正式发布!
博客原文 | 发布时间:2024-09-21
🦄文章&教程
Python in Excel 正式发布了!适用于 Microsoft 365 商业版和企业版,可以在 Excel 中编写 Python,支持语法高亮和代码补全,可以使用流行的分析库(Pandas、Matplotlib 和 NLTK)。

2、UV 汇总:五篇好文章和一个 pre-commit 技巧
uv 已经不仅是更快的 pip,它变得越来越全能了。作者分享了 5 篇关于 uv 的文章,毫无疑问都是好评吹捧。如果你还不知道它,可以借此了解一下。(附:Mastodon 上关于 uv 的一些评论)
作者开发了一个 Web 框架,主要目的是了解 Web 框架是如何工作的。文章介绍了这个框架的实现原理、请求处理流程,以及作者学到的技巧和经验。
4、使用 PyCharm 也能玩转 Jupyter Notebook
PyCharm 专业版提供了对 Jupyter Notebook 的强力支持,文章介绍了它的多种用法,包括连接到远程 Jupyter Notebook、导入数据、查看 DataFrame和动态图表、AI 助手、统计分类和数据分析等。
你是否了解 Python 并发?为什么说所有开发者都需要学习并发?SuperFastPython 网站发布了非常多关于并发的文章,这一篇主要解释什么是 Python 并发和它的重要性。
如何给 Python 写一个 Rust 扩展来提升性能?这篇教程介绍了如何将 Rust 代码打包成 Python 扩展,对比性能提升的数据,并且做了多项优化。
作者研究确定性随机提取问题,即从可能存在偏差和相关性的随机输入流中,创建均匀随机的输出流。文章用 Python 逐步实现了越来越复杂的几种随机性提取器。
PSF 即 Python 软件基金会,是一个促进 Python 及其社区发展的非营利性组织。作者介绍了这个组织在做的各项事务,以及作为董事会成员会的职责和发挥的作用。
文章对 800 万个 PDF 文件(解压后 8TB)作分类分析,使用了 LLMs、Embeddings Models、XGBoost 以及 LinearRegressor,绘制了一些漂亮的图表。

模糊测试(Fuzz Testing)是一种自动化测试技术,提供大量随机数据来发现安全漏洞或错误。这个系列文章(4篇)通过开发简单的模糊测试器来理解它的重要性。
Sans I/O 是一种用来实现网络协议的软件设计模式,它不包含网络 I/O 和异步控制流,但可以通过 I/O 集成层与网络 I/O 框架连接。websockets 库的作者以它为例,分享了 Sans I/O 在测试、重用性和扩展性方面的优势,以及在实践中遇到的挑战。
作者无情吐槽几乎所有编程语言的官方文档都有质量问题,包括结构不当、搜索功能不足和示例不充分等。作者赞扬了 Rust 的文档,并一一举例 Python、C#、Java、C/C++、Go 和 JavaScript 等语言文档的问题……
🐿️项目&资源
从 400+ 社交网络中,按用户名搜索存在的账号。支持批量搜索。(star 58.6K)
2、WindowsDowndate:接管 Windows 更新,可自定义降级漏洞
接管 Windows 的更新功能,自定义降级已修复的漏洞,包括操作系统组件、DLL、驱动、NT 内核、安全内核等等。
3、pyedifice:Python 和 Qt 的声明式 GUI 框架
借鉴自 Web 开发的现代声明式 UI 范式,纯 Python 开发,通过热重载实现开始迭代。
4、uvtrick:从一个 venv 中运行其它 venv 代码
使用 uv 和 pickle,实现跨 venv 的 Python 代码调用。
一个 CLI 视频剪辑工具,根据指定的时间做保留和剪切操作,支持多种格式和编解码器,近乎无损的音频和视频质量。
6、pyrtls:基于 rustls 的 Python 现代 TLS
提供对 rustls 的 Python 绑定,旨在替换 ssl 模块(但不完全兼容),将安全性和性能带到 Python 世界。
7、pocketpy:现代 C 语言开发的可移植 Python 3.x 解释器
用 C11 开发的轻量级(~15K LOC)Python 3.x 解释器,主要用于游戏脚本,旨在替代 lua。(star 1.6K)
8、wifi-crack-tool:WiFi 密码暴力破解工具
Python 开发的有图形界面的 Wifi 密码破解器,支持 WPA/WPA2/WPA3、多开并发、自动破解、自定义密码本、自动生成密码字典。(star 1.4K)
9、finic:创建基于 Playwright 的浏览器代理
一个云平台,简化基于浏览器的自动化代理的部署和管理,可快速启动机器人、爬虫程序、RPA 集成和其它依赖多重身份验证的 Web 服务。(star 2.1K)
10、papermill:参数化、执行和分析 Jupyter Notebook
为 notebook 中的代码提供参数,使同一个 notebook 根据不同参数多次执行。(star 5.9K)
11、Local_Knowledge_Graph:基于 Llama 的本地知识图谱
一个基于 Flask 的 Web 程序,利用本地 Llama 大模型来处理用户查询,生成分步推理,并将思维过程可视化为交互式知识图谱。
PTA 是指用纯文本文件和可编写脚本、命令行友好的软件(如 Ledger、hledger 或 Beancount)进行记账和会计的方法。这个网站收录了大量的工具、视频、文档和实践。
🐢播客&视频
Python Bytes 播客迎来了第 400 期!祝贺这一个长寿的 Python 播客!
视频分享了 13 个有点怪异的 Python 特性,详细解释了这些问题的原因。
🐧 往年回顾
Python 潮流周刊#20:三种基准测试的方法、为什么代码在函数中运行得更快?(2023.09.16)
71 PyPI 应该摆脱掉它的赞助依赖
博客原文 | 发布时间:2024-09-28
🦄文章&教程
PyPI 每天提供 19 亿次下载,据网友估计,这么大规模流量的成本约为 1200 万美元/年!这由 Fastly 提供赞助。文章作者提出要降低成本,摆脱对赞助的依赖,主要是解决预编译二进制文件的指数级增长问题。

介绍了如何用双下方法__new__() 来创建不区分大小写的字符串类,实现相等比较、大于小于比较、其它字符串方法的适配(如 upper、startswith 和 split)。
3、用 Tree-sitter & Jedi 重构 Python 代码
作者想批量修改函数的一个参数名,介绍了如何用 Tree-Sitter 解析节点,并用 Jedi 实现标识符的重命名。
Psycopg 3 支持同步和异步,为了简化代码提高维护效率,该库作者开发了一个脚本,通过解析 AST,自动将异步代码转换为同步代码,解决了两种模式的代码兼容问题。文章主要介绍了实现原理和关键问题的处理。
代码契约(code contract)是用前置/后置条件来规范代码的行为,按预期的方式执行。作者用自己开发的一个 dbc 库,介绍了什么是“design by contract”、如何用 Python 装饰器实现,以及这种编程范式的好处。
Oil 是一个 Python 开源项目,致力于开发一个现代的 bash,并开发一种全新的 shell 语言。文章是该项目作者最近的阶段回顾,解释为什么项目花了那么长时间,原因包括项目遇到的技术挑战和社会因素问题。
什么是 ORM(对象关系映射)?它有什么优点和缺点?Django ORM 的基础操作有哪些,性能优化技巧和常见陷阱有哪些?
8、用 Python 解决墨尔本大学的 Cat Walk 谜题
Cat Walk 是一个迷宫类的编程题,文章分析了解题思路并给出了详细的实现过程。(附:作者博客上还有其它谜题的文章,比如 解决“黑与白”谜题)

作者在 Github 上维护着很多库,之前使用 Dependabot 和 pre-commit.ci 等工具定期生成更新 PR,但通知太频繁造成了干扰。现开发了gha-update工具,手动更新 GitHub Actions 工作流。
ipyopenlayers 将流行的 JavaScript 库 OpenLayers 集成到 Jupyter Notebook 中,用于创建交互式地图。文章介绍了它的主要特点,演示了如何使用这个库将地理空间数据转化为动态的交互式地图可视化。
在 π 中出现的最长的重复序列有多长?查找较长的重复序列需要花多少内存和时间?文章用 Python 和 C 语言从圆周率的前几千亿个数字中查找最长重复系列,得出了几组有意思的探索数据。
《英国卫报》上的一篇文章,作者介绍自己为什么在 50 多岁开始学习编程,他学习过 HTML/CSS/JavaScript 却感到失望,最后喜欢上 Python 和它的社区。
🐿️项目&资源
将你在网上看到的所有内容保存到个人知识库中,有强大的搜索功能,支持与 Web 浏览记录聊天,支持本地 LLM 和自托管,拥有高级 RAG 技术。
轻量级命令行工具和 Python 库,以快速高效的方式检查数据库,无需写 SQL,支持 MySQL、PostgreSQL、MariaDB 和 MongoDB。
3、dante:用 SQLite 实现的 Python NoSQL 数据库
零设置、易于使用的文档数据库,适合于探索性编程、原型设计、内部工具和小型简单项目。基于 SQLite,可存储 Python 字典或 Pydantic 模型,支持同步和异步模式。
提供了用于连接数据帧、编码列、构建管道的高级工具,目标是为表格数据源与机器学习模型建立桥梁。(star 1.2K)
5、scientific-visualization-book:用 matplotlib 作可视化的开源电子书
一本关于 Matplotlib 的开源书籍,包含 PDF 和代码示例资源。(star 10.6K)
一个内存要求极低的向量数据库,具有高召回率和低延迟。使用了高度压缩的搜索索引,并结合磁盘重排序。
7、weather_landscape:通过景观图像可视化天气预报
将枯燥的天气预报数据直观呈现在手绘风的景观图上,随时间变化的动图。
在浏览器中轻松调试 HTTP 客户端请求,查看请求头、cookie、请求和响应等数据。
9、GetQzonehistory:获取 QQ 空间发布的历史说说
通过获取 QQ 空间的历史消息列表,获取该账号下发布的所有说说。
10、Qocker:用于管理 Docker 容器的 GUI 应用
用 PyQt5 开发的 Docker 容器管理工具,可快速访问和启/停/删容器,实时更新容器状态,支持 Windows、macOS 和 Linux。

Python 开发的自托管书签管理器,使用标签来管理书签,支持批量编辑、Markdown 笔记、稍后阅读、共享书签、自动添加网站描述、自动存档网站、书签导入导出、支持 PWA、浏览器扩展、SSO 身份验证等功能。
12、wasm2mpy:将 WebAssembly 编译为原生 MicroPython 模块
让静态类型语言写的代码在基于 MicroPython 的嵌入式系统(如 ESP32、Raspberry Pi Pico、STM32 和 nRF52)上运行,具有接近原生的性能。
🐢播客&视频
1、走进 Bento:Meta 的 Jupyter Notebook
这是一则 Meta 技术播客。Bento 是 Meta 内部的 Jupyter Notebook,通过版本控制、协作编辑和自动依赖管理等功能来增强 Jupyter Notebook。
🐧 往年回顾
Python 潮流周刊#21:如何提升及测量 Python 代码的性能?(2023.09.23)
72 Python 3.13.0 最终版已发布!
博客原文 | 发布时间:2024-10-12
🦄文章&教程
国庆假期时,Python 3.13 最终版本发布了!官方博客梳理了简要的新特性,以及删除/废弃的内容。(附:最详细和权威的官方文档 Python 3.13 有什么新变化?)
Python 3.13 有什么与众不同的地方?它最值得我们关注的变化是什么?文章重点介绍了自由线程和 JIT 两大特性,介绍了它们是什么、带来的影响以及如何使用。
作者说 Python 3.13 是自 Python 3.6 引入 f-string 以来,他最感到兴奋的版本。文章分享了他最喜欢的三个特性:新的 REPL、Git 友好的虚拟环境、PDB 的两项改进。
自 3.11 版本以来,Python 的性能有着显著提升,作者分析了它取得成功的几个关键因素,并解读了几项关键的技术(专门的自适应解释器、更好的内存管理、JIT)。

学习 Django 后可以做些什么?文章梳理了近 30 个 Django 项目创意,并列出了所需的技术栈,有面向初学者和高级工程师的两个部分。
什么时候该捕获函数抛出的异常,什么时候不该捕获?怎么知道要捕获哪些异常?捕获异常后,具体如何处理它?为什么不该捕获所有异常,什么时候可以这样做?什么才是错误处理的最佳实践?
7、PEP-758:允许不带括号的 except 和 except* 表达式
一则新创建的 PEP,提议让异常处理语法支持不带括号的 except 和 except* 表达式,意图是简化语法,跟其它地方的语法保持一致,提供可读性。
在 Python 3.13 之前,由于 GIL 的原因,Asyncio 主要用于 IO 密集型任务。3.13 支持自由线程后,asyncio.to_thread() 对于 CPU 密集型任务也有了用武之地,文章介绍了它的用法和性能提升情况。
这篇教程介绍了如何用 Streamlit 加载和可视化数据、根据提示语运行数据、使用 PropelAuth 作身份验证,以及保存用户提示语等内容。
10、用 Postgres 和 CLIP 开发一个图像搜索引擎
文章介绍如何开发一个基本的图像搜索引擎,用预训练模型为图像和文本生成嵌入向量,存储在 Postgres 中,并用 pgvector 对这些嵌入作相似性搜索。
字典是很常用的数据结构,但千万不要滥用!文章指出了字典的不透明和可变性难维护问题,并介绍用类、数据类、Pydantic、TypedDict 等方式来替代字典,提高代码清晰度、可维护性和安全性。
TypedDict 是 Python 3.8 的 PEP-589 引入的,主要为字典提供类型注解。文章介绍了它在某些场景下特别好用,包括非完整性用法、作为 **kwargs 使用、传递依赖等。
13、从 virtualenvwrapper 切换到 direnv、Starship 和 uv
作者分享了自己旧的 virtualenvwrapper 工作流,以及最近切换到 direnv、Starship 和 uv 的相关配置和使用体验。
14、Python NZ 的财务主管挪用资金,导致协会债务危机
Python New Zealand 是由志愿者运营的非营利性协会,其财务主管在近 5 年挪用 7 万美元资金,导致最后账上仅剩 26 美元!文章介绍了调查发现的案情细节。(附:Django 软件基金会财务主管 关于技术非营利性组织财务主管角色的看法)
🐿️项目&资源
1、PyUIBuilder:适用于 Tkinter、CustomTkinter、Kivy 的 GUI 构建器
通过拖拽方式,轻松创建 Python GUI 应用。支持多个框架,预提供 UI 小部件,支持扩展三方 UI 库,支持布局管理器,支持上传本地资产。

2、AI-Youtube-Shorts-Generator:用 GPT-4 自动分析并剪辑视频
利用 GPT-4 和 Whisper 从 YoouTube 视频中提取亮点,并剪辑成有趣的短片,支持垂直裁剪,适应短视频平台风格。
让可迭代对象支持流式操作,在操作时延迟计算,支持并发。
终端中的个人 AI 助手,执行代码、读写文件、浏览网页、查看图片。(star 1.9K)
5、open-notebooklm:将任意 PDF 转换为播客对话节目
利用开源 LLM 和 TTS 模型将 PDF 内容生成自然对话形式的播客节目,输出为 MP3 文件。使用 Gradio 开发的简单界面,便于交互。(star 1.1K)
6、starfyre:响应式的基于 WASM 的 SSR Python Web 框架
基于 Pyscript,让你仅用 Python 开发响应式前端应用。
7、secure:为 Django、Flask、FastAPI 添加安全的请求头
为主流 Web 框架添加安全请求头(如 Strict-Transport-Security、X-Frame-Options 等),避免常见安全漏洞的影响。
Python 开发的通用台球模拟器,交互式 3D 界面,侧重于速度、灵活性、可视化和分析的便利性。

9、otterwiki:Python 开发的简约 wiki 应用
Python 开发的内容协作管理软件,技术栈:Flask、halfmoon CSS 框架、CodeMirror 用作编辑器。界面简约,支持暗黑模式,支持 Markdown、身份验证、页面历史、页面附件等。
10、curl_cffi:可模拟浏览器 tls/ja3/http2 指纹的 http 客户端
与其它纯 Python http 客户端(如 httpx 和 requests)不同,curl_cffi 可模拟浏览器的 TLS/JA3 和 HTTP/2 指纹,支持 websocket。(star 2.2K)
11、thepipe:从 PDF、URL、幻灯片、视频中提取干净的 Markdown
使用视觉语言模型,从多种数据源上提取结构化数据,可与 LLM、向量数据库和 RAG 框架配合使用。(star 1.1K)
12、erdantic:Pydantic 等数据模型类的实体关系图
为 Python 数据模型类(Pydantic、attrs、dataclass)绘制实体关系图(ERD),图表使用 Graphviz 渲染。

🐢播客&视频
1、Python 3.13 和最新趋势:2025 年开发者指南
视频介绍了 Python 3.13 中令人兴奋的新功能,还透露了 Python 3.14 最新开发计划。
2、用 FastAPI、React 与 MongoDB 作全栈开发
FreeCodeCamp 的视频教程,介绍了如何用 FARM 技术栈(FastAPI、React 和 MongoDB)开发全栈项目。
40 多名 Python 核心开发者们花了一周时间对 Python 3.13 作收尾,并为 Python 3.14 规划、原型设计和实现功能。播客中还采访了一些开发者。
国内 Python 核心开发者高天聊了 3.13 的几个新特性,以及他实现的 PEP-667 和几个 PDB 的特性。
🐧 往年回顾
Python 潮流周刊#22:Python 3.12.0 发布了!!(2023.10.12)
73 让我们对 PyPI 温柔一点,好吗?
博客原文 | 发布时间:2024-10-19
🦄文章&教程
许多自动化系统频繁从 PyPI 下载包,导致它巨大的流量负担。本周刊第 71 期提到它每年成本约 1200 万美元!文章讨论了如何优化 Dockerfile,既能加快构建速度,更可减少对 PyPI 的流量压力。
uv 是 pip 的替代,同时它还可以安装 Python。在生产环境使用 uv 来安装 Python 是否合适呢?文章从所装 Python 的来源、可移植性和兼容性、性能和安全性等方面比较了它跟其它版本的区别,总体持谨慎乐观态度。
作者用 Python + NextJS 开发了一个视频字幕优化器,后端采用 FastAPI 和 SQLmodel,文章分享了技术选型、异步编程、数据库选型与优化、利用 LLM 作质量控制、用 LLM 作诊断和修复错误、如何部署生产等方面的经验。
4、Starlette 应用的并发问题(以 FastAPI/FastHTML 为例)
探讨了在基于 Starlette 的应用(如 FastHTML 和 FastAPI)中调用大模型时,如何实现后台任务处理而不阻塞服务?方案包括用 SQL 数据库作为队列、使用线程运行后台任务、异步处理等。
文章作者自 2017 年以来就是 Python 核心开发者,分享了自己所享有的一些权力、福利和责任,包括 CPython 及 20 多个 Python 代码仓的提交权限、有 python.org 后缀的邮箱、参与 Python 语言峰会,等等。
Eventlet 是一个 Python 异步库,诞生将近 20 年了,现在即将正式退役!文章介绍如何将 Eventlet 项目迁移成 Python 官方的 Asyncio 库,使用 SQLAlchemy 团队开源的 Awaitlet 工具。
7、OpenTelemetry 示例:用 Python 开发特斯拉监控器
如何监控 Tesla Model 3 的充电和驾驶数据?文章介绍了用 Python 和 OpenTelemetry 对接 Tesla Owner API,采集和存储数据的流程,实现对车辆数据的监控分析。
详尽的长文教程,一步步教你如何用 Django + Vue 技术栈开发一个博客,并使用 GraphQL 作接口通信。
Python 3.13 带来了全新的 REPL(即 Python 控制台),此 PEP 是对该特性的设计说明,包括为什么用 Python 而非 C 语言实现 REPL、它包含哪些功能、向后兼容性、被拒绝的设计想法等。
Slack 工程师在整合 Quip 时,发现 SQL 查询中出现大量 EOFError,定位发现是由 asyncio.IncompleteReadError 导致的。文章介绍了调查挖掘根因的过程、解决方法以及该问题的影响。
异常通常是如何发生的,以及哪些因素有助于快速修复异常?Bugsink 作者强调了局部变量在调试中的重要性,它们是有迹可循的面包屑,帮助开发者快速追踪和定位错误。
作者开发了一个 django-simple-deploy 项目,用于配置和自动部署项目到不同平台。文章讨论了在开发插件系统时遇到的问题,以及用良好的项目架构来解决。
🐿️项目&资源
跨平台的 Python 分析器,通过读取 CPython 解释器虚拟内存空间来收集样本,对目标程序影响很小。零侵入、基于时间和内存分析、内置对多进程应用的支持。(star 1.8K)

类似 grep,可视为 tr、sed、ripgrep 和 tree-sitter 的混合体,能理解源码语法,可做搜索和其它操作。
一个用于探索符合人体工程学的轻量级多智能体编排的教育框架。(star 13.1K)
4、makedown:在可执行的 Markdown 文件中管理 Shell 脚本
用 Markdown 文件来管理命令和文档,支持 zsh、bash、javascript、python 等脚本执行,支持代码高亮。
5、pyloid:Electron 和 Tauri 的 Python 替代框架
基于 QtWebEngine 和 PySide6 构建,旨在简化桌面应用开发,可作为 Electron 和 Tauri 的替代。
将 NASA MPC 的小行星数据作 2D 渲染,显示小行星的运行轨迹。
免费开源电子书,用几千行 Python 代码开发一个基本但完整的 Web 浏览器,且涵盖从网络到 Javascript 等内容。
功能强大的自托管网站存档解决方案,用于离线收集、保存和查看网站。通过 URL/浏览器历史记录/书签/Pocket/Pinboard/ 等,保存 HTML、JS、PDF、媒体等信息。(star 21.5K)
9、OmniSenseVoice:带词语时间戳的高速语音识别
基于 SenseVoice 模型开发的更智能、更快速的音频转录工具,有闪电般速度和精确的时间戳。
10、pipreqs:生成 pip requirements.txt 文件
基于项目中 import 内容生成 requirements.txt 文件,比pip freeze 更好用。(star 6.4K)
基于 OpenStreetMap 公开的地图数据,为你的网站和 APP 呈现免费的自定义地图。不限制地图和请求数,无需注册和 API 密钥。(star 2.2K)
12、Starmoon:支持语音的 AI 硬件 + 软件框架
经济实惠、善解人意的对话式 AI 伴侣,用于陪伴、娱乐、教育、儿童护理、物联网机器人、人工智能增强机器人和 DIY 机器人套件开发等。
🥂讨论&问题
1、为什么 Python 的 dict 没有 set 方法?
🐧 往年回顾
Python 潮流周刊#23:35 个容易上手的 Python 小项目(2023.10.22)
74 创下吉尼斯世界记录的 Python 编程课
博客原文 | 发布时间:2024-10-26
🦄文章&教程
一项新的吉尼斯世界记录诞生了:世界上最大的编程课,1688 名学生同时参与。作者分享了自己在这堂 Python 编程课里所讲的主要内容,包括 Python 基础知识,以及编程实现一个数独游戏,并编程实现题目解答。
2、2024 年 Python 和 JavaScript 开源生态分析
文章分析了 Github 上超过 3.6 万个代码仓,探讨两门编程语言的开源增长趋势、主要技术焦点与社区活跃度。JavaScript 更加侧重于 Web 全栈开发,Python 则在数据科学和机器学习领域占据主导地位。

很多人误认为 range 是迭代器,但这不对!它只是一个可迭代对象(这种情况非常少见)。文章解释了这两个概念,说明它们的区别,避免大家造成混淆。(附:科普是什么/不是什么的文章很多,但是,为什么 range 不设计成迭代器呢?)
EuroPython 在今年 7 月举办,目前已发布活动视频 130+。作者挑选了 8 个与安全相关的演讲,作了概要性介绍,包括“网络抗风险法案”即将出台、Python 打包的许可标准化、PyPI 添加更新框架……
当代码中抛出层层嵌套的异常时,你应该不陌生“During handling of the above exception, another exception occurred: ”,但这种情况的可读性较差。作者介绍了自己开发的工具是如何解决这个问题的。
6、Python 3.12 vs Python 3.13:性能测试
最新发布的 Python 3.13 版本相比 3.12,在性能上有什么变化?作者在台式机、笔记本和迷你 PC 上总共作了 100 种不同的基准测试,给出了性能变化的明细清单。
“Django from first principles”系列完结了,它从单文件项目开始,一步一步开发出一个标准完整的 Django 项目。最终篇分享了一些进一步学习 Django 的方式。
JAX 是由谷歌 Deepmind 开发的高性能框架,提供对 GPU 和 TPU 等硬件加速器的支持。这篇长文由 4 部分组成,详细介绍了它的转换及解释过程、Jax 表达式、JIT 实时编译、向量化的雅可比积等内容。
9、如何给 Python 打补丁,让它支持这个 Ruby 功能?
Python 的条件表达式语法是“X if C else Y”,其中 else 部分是不可省略的。能否让它的 else 部分变为可选的呢,默认为 None 值?作者分享了自己魔改 Python 的过程。(附:一篇简化版,为 CPython 解释器添加一个语法)
10、我的 NumPy 年:为下一代科学计算创建 DType
作者在 NumPy 2.0 中引入了新的字符串 DType,避免了内存浪费并提升性能,文章分享了其技术流程、关键设计决策以及面临的起起落落,以及一些如何解决心理障碍的技巧和成为维护者的建议。
有没有用 Python 开发成的数据库?文章梳理了几个,包括关系型数据库、NoSQL 数据库、嵌入式数据库和面向对象数据库这几类,介绍了它们的主要特点、使用场景、注意事项和基本用法。
Wafris 是一家开源的 Web 应用防火墙公司,博客分享了他们为什么要将 Redis 改为 SQLite、决策时做过的基准测试、迁移的注意事项,以及整体的架构优化方案。
🐿️项目&资源
1、sudoku-in-python-packaging:通过 Python 打包来解数独问题
从依赖文件中解析 Python 包依赖是 NP 完全问题,数独也是 NP 完全问题,这意味着可以用 Python 包管理器来解答数独问题。
一个用来制作解释性数学视频的动画引擎,以编程方式创建精确的动画。(star 25.1K)

一个极简且功能强大的库,支持在 Python 中执行 R 代码,在 Python 与 R 之间快速传输大数据集。是 rpy2 库的替代方案。
4、CSnakes:将 Python 嵌入到 .NET 项目
它是一个 .NET 源码生成器和运行时,可嵌入 Python 代码到 .NET 项目,无需 REST、HTTP 和微服务。支持 Python 3.9-3.13,包括 3.13 的自由线程。
自定义频道菜单,根据模板频道,自动获取并更新最新的直播源接口。包含央视频道、央视付费频道、卫视频道、广东频道、港·澳·台频道、电影频道,等等。(star 3.4K)
6、data-formulator:用 AI 创建更丰富的可视化
微软开源的 AI 工具,结合 UI 和自然语言输入,将图表设计需求与数据交给 AI 创建出丰富的可视化效果。
7、VirtualWife:虚拟数字人项目,支持 B 站直播
一个孵化中的虚拟数字人项目,支持一键 Docker 部署、支持 Linux/Windows/MacOS 系统、支持自定义角色、长短期记忆、LLM 模型切换、文字驱动表情/动作,等等。(star 1.8K)
8、socketify.py:高性能 Http/Https 和 WebSockets 服务
支持 CPython 和 PyPy,快速可靠的 Http/HTTPS、支持 pub/sub 的 WebSocket、快速加密的 TLS 1.3 比大多数替代服务更快、支持最大背压/最大超时/最大有效载荷和空闲超时,等等。(star 1.4K)
使用 RMBG-1.4 模型实现图像抠图,支持单张和批量,结果导出 png/psd/jpg 格式,支持二次编辑、拖拽、粘贴、格式转换、图片压缩等功能。

最大区别和优势就是无需 GPU 和繁琐的本地配置,拥有基于 PyQt5 和 qfluentwidgets 的高颜值界面,多线程并发 + 批量处理,支持生成 .srt 和 .txt 字幕文件。
11、cached-property:用于缓存类属性的装饰器
它使得缓存耗时或计算成本高昂的属性变得快速而简单。
支持在语法树层面对 Python 作重构,可安全、大规模修改代码,并保证生成的代码能编译和运行。(star 1.6K)
🐢播客&视频
1、2024 年 PyData 阿姆斯特丹视频合集(47 个)
PyData Amsterdam 是一个专注于 Python 数据科学、机器学习、人工智能等领域的会议和活动。今年的 40+ 演讲视频已更新到油管频道。
2、2024 年 EuroPython 视频合集(135 个)
EuroPython 是欧洲规模最大的 Python 社区活动,今年的 130+ 活动视频已发布。
🐧 往年回顾
Python 潮流周刊#24:no-GIL 提案正式被采纳了!(2023.10.29)
75 用 Python 开发 NoSQL 数据库
博客原文 | 发布时间:2024-11-02
🦄文章&教程
文章介绍了如何用 Python 开发一个 NoSQL 数据库,介绍了 NoSQL 数据库的工作原理和相关实现,包括核心数据结构、全局二级索引、查询引擎以及实现复杂查询。
介绍了 Python 3.13 中未被广泛报道但值得关注的变化,包括改进的 pdb 调试器、修复的 shutil 库、并发的小优化、新的注解语法和一些 API 调整。
一则 PEP 草稿,提议引入用于处理自定义字符串的模板字符串,是 f-string 的泛化,使用“t”代替“f”,支持安全检查、Web 模板、特定领域语言等。
DRF 框架(Django REST framework)源码分析系列文章,包括生命周期、Authention、Permission、Throttle 等组件源码分析及改编。
Python 是一门高级语言,为开发者屏蔽了底层的实现细节。这个系列文章第一篇用 C 和 Python 写同样的程序,揭示 Python 对我们隐藏的内容,第二篇则进一步探讨 C 语言是如何被转换为 CPU 指令的,帮助我们理解 Python 的幕后细节。
上期周刊分享过 sudoku-in-python-packaging 项目,这篇文章解释了它是如何实现的,同时简单比较了 uv 和 pip-tools 的耗时,前者 0.24 秒后者 17.72 秒。(@frostming 分享说这个点子在 2 年前也有人提过,用 Poetry 的依赖项解析器求解数独)
统一化(Unification)是解决方程式或约束集的一种方法,它试图找到一个替换方案,使得两个给定的表达式在替换后变得相同。文章讨论了实现统一化的不同算法,特别是比较了递归和非递归(循环)两种风格。
这位作者很喜欢 Python 3.13 的 REPL,分享了如何给它添加快捷键功能,使用到的是冷门的 PYTHONSTARTUP文件和_pyrepl模块。
9、使用 CSnakes 将 Python 嵌入到 .NET 项目中
如何将 Python 深度嵌入到 .NET 项目中?作者开发了一个 CSnakes 项目,文章介绍了它的实现原理,用实际的例子演示了 .NET 与 Python 脚本的交互用法,同时与 IronPython、Python.NET 和 Pyjion 等框架做了对比。
10、Streamlit vs Gradio:Python 仪表板的终极对决
Python 在数据分析和可视化方面有不少好用的工具,文章综合对比了 Streamlit 与 Gradio 两大工具的功能及优势。
11、REST API 已经 25 岁了:它是如何形成的,以及将来可能会怎样?
REST(Representational State Transfer)概念诞生于 2000 年,如今随着 AI 和自动化的兴起,RESTful API 在新环境下可能会如何发展呢?文章回顾了它在“Web时代”诞生的背景和发展历程,并预测它在“AI时代”可能的未来演进。
🐿️项目&资源
1、jamesql:用 Python 实现的内存 NoSQL 数据库
Python 开发的小型数据库,支持构建自定义排序算法。能在 1ms 内从数千个文档中作多字段的全文检索。
2、tabled:检测并解析表格为 Markdown 和 csv
表格内容提取工具,用 surya 查找 PDF 中的所有表格,识别行/列,并将单元格格式化为 markdown、csv 或 html。
3、ClickPy:Clickhouse 提供支持的 PyPI 包分析网站
可以浏览 PyPI 上 70 多万个软件包和超过 1.16 万亿次下载的数据。

4、finstruments:用 Python 和 Pydantic 构建的金融工具定义库
开箱即用,带有最常见的金融工具,包括股票远期和期权,以及头寸、交易和投资组合模型等。
5、pneumaticworkflow:轻量级工作流自动化工具
开源的云原生工作流管理系统,Apache 2.0 许可证,可视化工作流设计、自动化任务管理、可扩展架构、对三方 API 友好、实时监控及分析面板、基于角色的访问控制。
基于 wgpu 构建,相比 OpenGL,可实现卓越的性能和可靠性,应用于科学可视化、视频游戏渲染等场景。
音乐处理工具,用 Pygame 实现的图形界面,并集成了 MIDI 功能来处理音符和旋律。
自带数据帧库(Pandas、Polars、Dask、CuDF、Rapids、Arrow 和 Modin),支持多种合约格式(yaml、json 或 Python 编写),轻量级简单易用。
一个 Web 应用(Gradio 开发),可将视频翻译成不同的语言,保持声音同步。
将二维图像与三维空间中的点云数据进行匹配,以实现精确的空间定位和场景理解。(star 1.3K)
让文件操作也支持异步,与 Python 标准的文件操作相似,支持 async/await。(star 2.8K)
在终端中以图形方式监控 CPU 温度、频率、功率和利用率等数据变化。(star 4.2K)

🐢播客&视频
PyBay 是由湾区 Python 协会举办的一年一度的 Python 爱好者大会,今年为第 9 届。
🥂讨论&问题
1、为什么 Python 流行的框架使用字符串而非枚举作为参数?
比如 matplotlib 使用 fig.legend(loc=‘topleft’),而不是枚举式 LegendPlacement.TOPLEFT?
Python 3.13 引入了一个语法点,允许在类型注释中写列表推导式和 lambda!但是,代码可读性有点糟糕,评论区已是一片反对声了。
🐧 往年回顾
Python 潮流周刊#25:性能最快的代码格式化工具 Ruff!(2023.11.04)
76 用 50 行 Python 代码实现 BASIC
博客原文 | 发布时间:2024-11-09
🦄文章&教程
作者试图分别用 50 行左右的 Python 代码实现一些经典的小型编程语言,包括最古老的编程语言之一 Assembly、1970 年代的 BASIC、Forth/MOUSE、Lisp 1.5、APL/K、PL/0 等,系列文章介绍了实现的过程和主要原理。
Django Girls 组织始于 2014 年,如今迎来 10 岁生日了!10 年里,来自 109 个国家/地区的 2467 名志愿者共举办了 1137 场免费的研讨会,来自 593 个城市的 24500 多名女性参加了活动。
3、venvstacks 简介:分层的 Python 虚拟环境
venvstacks 是一个基于 venv 的项目,将 Python 虚拟环境分成三层(运行时层、框架层、应用层),每层独立归档和发布。适用于复杂项目,或需要再不同组件间共享依赖的情况。(附:venvstacks 的起源)
文章建议不要让 API 的返回值使用命名元组,因为它同时支持基于索引和基于属性的数据访问,增加了不必要的复杂性。推荐的做法是用数据类、类型化字典等更清晰的数据结构。
Django 到明年将满 20 岁了,作者思考关于 Django 的一些话题,包括为什么它能长寿而且持续健康、核心团队的演变、Django 的几个支柱、添加新功能的挑战、即将添加的重大功能、Django 与生态系统的关系,等等。
Python 3.13 引入的自由线程该如何使用,以及它对 Python 应用的性能到底会带来多大影响?文章通过 PageRank 算法的多线程和多进程实现,比较了不同并发模型的性能。
关于 Python 项目管理和打包的综合指南,使用当前最火工具uv来演示,包括pyproject.toml的使用、入口点、模块、包、项目和库的区别、依赖关系、依赖组、依赖对象标识符、锁定和同步等等知识。
8、如何用 cProfile 和 snakeviz 分析 Python 代码?
介绍了如何用标准库中的 cProfile 来分析代码性能,并用snakeviz生成火焰图作可视化。解释了如何阅读和理解火焰图,通过火焰图识别性能瓶颈,通过实例演示性能优化的工作流程。
如何提高 Python 编程效率和生产力?这篇长文分享了 21 项 Python 编程小贴士,多数为初级内容,但示例和解释比较充分。
作者在 2024 机器学习会议期间,关于 ML 系统在开发、扩展、执行与协作、用户关系、会议活动等方面的反思。
11、Octoverse:Python 超越 JavaScript 成为 Github 最流行语言
Github 发布了今年的 Octoverse 报告,揭示了全球开发者社区的现状和趋势。在 AI 热潮和机器学习带动下,Python 终于超越 JavaScript 而登顶首位。(据预计,印度将在 2028 年成为 Github 上最大的开发者群体。)
🐿️项目&资源
在控制台中的简约的文件管理器,支持目录层级结构、多窗格视图模式、常见的文件操作、批量重命名、自动确定文件类型并用正确程序运行、标签页、书签、鼠标操作等。(star 15.6K)

将前景图以逼真的方式合成到背景图中,消除两者的不一致,使图像混合、绘图协调、生成阴影等。目标是解决与图像合成相关的所有问题。
支持在 Go 里调用 Python(基本类型、模块、函数)、在 Python 中调用 Go(将 Go 函数/结构体导出到 Python),使用常用库(matplotlib、gradio)作基本测试。
4、code-embedder:使 README 中的代码片段保持最新
这是一个 GitHub Action,可自动更新 Markdown 文件中指定部分的代码片段,无需人工干预。
包含一系列扩展 Git 功能的子命令,让你使用 Git 更流畅。
6、tinylangs:50 行 Python 代码实现其它编程语言
分别用不到 50 行 Python 代码实现 Assembly、BASIC、Lisp、MOUSE、TCL、k/simple 解释器、PL/0 解释器等编程语言。
应用于电话、视频会议、语音聊天等实时通信场景。(star 1.2K)
用 Python 代码绘制云系统架构,无需其它设计工具就可做原型设计。支持AWS、Azure、GCP、Kubernetes、阿里云、Oracle Cloud 等云服务商。(star 39K)

轻量级的、基于 Markdown 的笔记应用,具有任务管理功能。将 Markdown 文件转换为现代 Web 界面,支持任务、图像和代码片段。
读取流行的文档格式(PDF、DOCX、PPTX、图像、HTML、AsciiDoc、Markdown)并导出为 Markdown 和 JSON。支持扫描版 PDF,支持 PDF 文档理解,包括页面布局、阅读顺序和表格。(star 7.3K)
11、LibreTranslate:免费的开源机器翻译 API
免费开源的机器翻译 API,完全自托管,支持离线,翻译引擎是开源的 Argos Translate 库,不依赖 Google 或 Azure 等专有提供商。(star 9.6K)
用于创建和执行数据处理管道的工具,适用于复杂的文档处理任务。它提供了一个低代码、声明式 YAML 接口,用于定义 LLM 支持的复杂数据操作。(star 1.2K)
🐧 往年回顾
Python 潮流周刊#26:requests3 的现状(2023.11.11)
77 Python 依赖管理就像垃圾场火灾?
博客原文 | 发布时间:2024-11-17
🦄文章&教程
文章讨论了 Python 依赖管理的复杂性,随着项目增长和演变,很容易发生“火灾”。应该如何预防呢?文章分享了很多提升“消防安全”的技术、工具和最佳实践,分析了不同工具的优缺点,根据不同场景提供了使用建议。
来自美国计算机协会(ACM)的一篇论文,分析了 1302 个流行的 Python 开源项目源码及其 3232 个传递依赖库,建立细粒度的项目依赖图,作可达性分析,发现超过 50% 的依赖是膨胀的。
作者分享了基于 uv 和 just 的 Django 项目模板,介绍了建议的目录结构、配置管理、环境变量和密钥管理、Web UI、部署和维护等话题。
Django 的默认 Paginator 依赖于对象 COUNT(*) 查询来计算页数,可能导致耗时很长,文章介绍如何实现自定义分页器,提高分页 API 的查询性能。文章演示的例子从 855 毫秒提升到 12 毫秒。
5、你需要更注意分词
在构建人工智能应用时,需要对文本进行分词,作者发现分词器的选择和优化对 RAG 的效果至关重要,讨论了不同分词器类型(基于单词、字符和子词)及其对模型性能的影响。
Python 中被 PEP-8 推荐的判断列表是否为空的方法是“if seq”,而不是“if len(seq)”。有人说第一种方法含糊不清,文章对此观点做出反驳,提倡使用有意义的变量名、类型提示、清晰的函数名和文档字符串来提高代码的可读性,减少出现含糊的可能。
PyPI 引入了 PEP-740 规范的一项安全特性:数字证明。它通过提高密钥可用性、索引可验证性、密码学强度和来源属性,改善了传统的 PGP 签名。
8、PyPIM:直接在 RAM 中执行 Python 代码的新方法
以色列研究人员开发了一种新的软件“平台”,可将易于阅读的 Python 指令转换为低级机器代码,并在 RAM 中执行,而无需通过 CPU。这种新的内存处理 (PIM) 架构显著提高了代码性能。
管道模式(Pipeline pattern),也称为链式命令模式,文章介绍了一个用 functools.reduce 、partial函数以及BeautifulSoup库来解析 HTML 内容的实例,解释了这种模式的用法和优点。
蓝绿部署是防止部署期间服务停机的常用策略,文章深入探讨了什么是蓝绿部署,为什么蓝绿部署时修改数据库可能很棘手,以及用 Django 项目为例,常见数据库修改的处理。
11、Netflix 关于 Workbench UI 延迟问题的调查
Workbench 是 Netflix 推出的一个远程开发工作区,最近遇到 JupyterLab UI 变得缓慢且无响应问题,文章复盘了该问题的详细定位过程,从 UI 一直到 Linux 内核作调试。
如何在 Go 项目中使用机器学习模型?文章介绍了几种方法,包括用现成的大语言模型的 API、本地运行开源模型,以及通过 Python 侧车模式集成训练好的模型。文章主要是关于最后一种方法的解释和示例。

🐿️项目&资源
将无法直接访问的嵌套字典变为一种属性,可使用点表示法访问字典的元素,使代码更为简洁和易读。(star 2.6K)
2、dendrite-python-sdk:构建 Web AI 代理,像人类般浏览网页
支持与元素交互、提取结构化数据、身份验证、上传/下载文件、浏览而不被拦截。
3、prints_charming:增强终端打印的样式和颜色
支持终端的彩色打印、设置文本样式(背景色、粗体、下划线等)、自定义样式、创建边框和表格、智能默认值等功能。
在终端中使用类似 Vim 的命令阅读 epub 电子书,并支持与当前文本聊天、生成摘要、文本转语音等功能。
5、PiML-Toolbox:Python 可解释机器学习工具箱
用于可解释机器学习模型开发和验证的新 Python 工具箱,通过低代码接口和高代码 API,它支持越来越多的本质上可解释的 ML 模型。(star 1.2K)
6、PDF-Extract-Kit:高质量提取 PDF 内容
从复杂多样的 PDF 文档中提取高质量内容,集成领先的文档解析模型、跨不同文档的高质量解析、模块化设计、提供多样化且全面的 PDF 评估基准。(star 5.6K)
7、VideoLingo:Netflix 级字幕切割、翻译、对齐、配音
一站式视频翻译本地化配音工具,一键生成 Netflix 级别的高质量字幕,告别生硬机翻,告别多行字幕,还能加上高质量的配音,让全世界的知识能够跨越语言的障碍共享。(star 6.3K)
异步优先的纯 Python 渲染引擎,类似 React 的上下文支持,所有基线 HTML 标签都内置,支持 Markdown,基于 JSON 的国际化,所有东西都可轻松自定义。
9、website-hot-hub:36Kr、bilibili、抖音、掘金、微信读书的热点榜
每小时自动抓取一次数据,按天归档多个平台的热点榜,数据从 2023-10-25 至今。
10、watermark-anything:为任何内容添加水印
对论文 Watermark Anything 的实现和预训练模型,支持在图像中嵌入多个本地化水印。
非常先进的视频生成模型,完全开源,具有高保真度的动作和对提示的强烈遵循性。(star 2K)
不仅能识别人脸,还能分析人物属性(年龄、性别、情感、种族)。人脸识别准确率 97.53%。(star 14.7K)

🥂讨论&问题
当前在 Python 团队中推行哪些“默认”
2、为什么有一些 Python 入门书不教 class、yield、self 之类的方法?
为什么有些颇受好评的入门书里都不教这些东西?不学会有问题么?
🐧 往年回顾
Python 潮流周刊#27:应该如何处理程序的错误? (2023.11.18)
78 async/await 是糟糕的设计
博客原文 | 发布时间:2024-11-23
🦄文章&教程
作者确信 async/await 对大多数语言来说是一种糟糕的抽象,更好的方式是线程。虽然它让我们从回调地狱中解脱,但也带来了新的问题,如彩色函数、背压挑战等,阻碍我们追求直接直观的并发。作者建议新语言设计应采用类似 Java 的 Loom 项目的虚拟线程模型。(附:文中一再提及的一篇旧文 I’m not feeling the async pressure)
文章比较了 Python 与 Node.js 和 Rust 的性能,例子是计算斐波那契数列和冒泡排序。结果发现 Python 3.11 相比上一版本有较大提升;PyPy 与 Node.js 速度十分相近。作者为 Python 近几个版本的性能提升感到满意,对 PyPy 的性能感到惊讶。
异步 Django 使用时有什么注意事项?文章介绍了全异步涉及的 ASGI Web 服务器、异步视图、异步 ORM、异步 API 调用、异步中间件等使用,结论认为 异步 Django 已经可用于生产环境。
持久执行能够在系统崩溃、重启或中断后恢复到之前的状态或位置。文章介绍了 DBOS 的轻量级实现,使用 Postgres 来存储工作流状态和步骤输出,支持持久化睡眠、消息传递和队列等功能,简化了开发、部署和维护。
上期周刊分享了一篇实现管道模式的文章,用的方法是 reduce 和 lambda,而这篇文章则通过重载运算符来实现,调用时更贴近 Linux 中的管道操作符。(分享自@un4gt)
文章分享了好几组性能测试的数据,FireDucks 平均比 Pandas 快 50 倍,比 Polars 快,甚至击败了 DuckDB!FireDucks 与现有 Pandas 100% 兼容,性能更快,看起来不错。
不算空白字符,任何 Python 程序都能编码成仅 24 个字符的长度?文章将 Unicode 空白字符的码点映射到特定的字符上,实现代码的极致压缩。
8、PEP-765:不允许在 finally 块用 return/break/continue 作退出
一则新的 PEP 草案,建议限制在 finally 代码块中使用 return/break/continue 作退出,主要原因是它会导致异常被吞噬,以及 finally 中 return 的值会替代 try 子句的 return 值。
详细分析了 CPython 中的内存管理机制,主要关注循环垃圾回收器 (GC),介绍了它的运行方式和运行时机,并解释了它对程序性能的影响。还介绍了优化内存使用和减少 GC 影响的技巧,如调整 GC 阈值、使用弱引用和优化数据结构。
作者建议随着系统增长而逐步消除瓶颈,介绍了常见瓶颈的优化方法,包括查询过程优化、数据库索引、查询集优化、视图级缓存、模板片段缓存、底层缓存 API、异步视图和后台任务、负载均衡,等等。
SQL 不仅可作数据库查询,还可解决看似棘手的问题,如数独和编程挑战。文章展示了 SQL 在解决图同态和约束满足问题的强大能力,解决这类问题比纯 Python 更快。
GDB 是一个古老的 Linux/BSD 系统调试器,文章介绍了如何定制 GDB 界面、配置 DDD、GDB 的调试技巧,以及使用 GDB 的 Python API 来创建辅助函数和美化打印等内容。
🐿️项目&资源
提供给 TUI 开发使用的基本小组件(按钮、标签、复选框等)、专用小组件(Windows, Frames, Tables等)、真彩色支持、全/半/零大小的 Unicode 字符。
在终端中通过键盘或鼠标来导航目录树,支持文件预览、路径补全和校验、路径组件。
由 ClickHouse 提供支持的进程内 SQL OLAP 引擎,输入和输出支持 Parquet、CSV、JSON、Arrow、ORC 和 60+ 种格式,支持 Python DB API 2.0。(star 2.2K)

4、open-notebook:谷歌 Notebook LM 的开源替代
支持多笔记本、支持多种模型、支持笔记转播客、广泛的内容集成方式、AI 驱动的笔记、集成搜索引擎、精细的上下文管理。
检查 LLM 的漏洞,包括探测幻觉、数据泄露、提示词注入、错误信息、有害信息、越狱等问题。(star 2.7K)
一个基于 Transformer 架构的管道,旨在生成 AI 图像和视频,以及用于训练 Diffusion Transformer 的基线模型和 Lora 模型。(star 1.5K)
知名 UP 主何同学将基于此开源项目改造的程序称为“专门写了一个软件”……它支持 ASCII 字符转制,包括图像到文本、图像到图像、视频到视频。(star 6K)

一种查询字典列表或对象列表的方法,就像在 DBMS 中过滤一样。可查询与 OR、AND 或 NOT 匹配的字典/对象。速度比 Pandas 快。
Distributed Systems 的第 4 版,包含各种小的更正项,所有 Python 代码已更新为 Python 3.
10、ebook2audiobook:生成带章节的电子书有声读物
用 Calibre 和 Coqui XTTS 将电子书转换为带章节和元数据的有声读物,支持可选的语音克隆和多种语言!(star 1K)
一个专注于隐私的被动记录项目,可以自动记录屏幕内容,构建智能索引,并提供便捷的 Web 界面来检索历史记录。数据存储在本地,完全本地化运行。
用 Python 开发的轻量级音乐播放器,简约跨平台,支持本地文件及用 spotdl 在线下载。

🐢播客&视频
1、PyData Tel Aviv 2024 视频列表(24个)
PyData Tel Aviv 是一个专注于 PyData 项目的会议和社区活动,聚焦数据分析、数据科学和机器学习领域。
🐧 往年回顾
Python 潮流周刊#28:两种线程池、四种优化程序的方法(2023.11.25)
79 Python 的元数据困境
博客原文 | 发布时间:2024-12-01
🦄文章&教程
作者指出 Python 的元数据系统太复杂了,存在 “缺乏约束” 的问题。通过与 JavaScript 对比,文章列出了 Python 元数据的诸多问题:复杂的元数据访问、必须重新生成的元数据、缓存失效不明确以及动态元数据导致的解析器效率低下。
Talk Python 网站是 2015 年用 Pyramid 框架开发的,但该框架已发展停滞。文章讨论了多种知名 Python Web 框架,介绍了为什么不选择它们,为什么会选择 Quart(异步 Flask),以及迁移的过程。
3、Python 不仅是胶水,它是一个隐性的 JIT 生态系统
在传统的 JIT 编译中,程序会在运行时优化其热路径(常执行的代码段)。作者发现 Python 的社区生态系统做了非常相似的事,在某些路径上持续遇到性能瓶颈时,生态系统会优化这些路径。
作者尝试了用 Python 类型提示,但发现它带来的收益不比麻烦多。偶尔开发小型的单人 Python 项目,这种情况下确实可以不太关心类型提示的使用。(附:该作者还写了一篇 我使用 Python 类型提示和 mypy 的一些经验)
使用热门的 uv 来介绍 Python 项目管理,这是系列第二篇,关于项目构建与发布流程,包括构建系统、源码树、构建前后端接口、可编辑安装和自定义构建过程,以及如何处理依赖和元数据等问题。
作者用 Rust、C#、NodeJS、Python、Go、Java 的协程,进行并发任务占用内存的基准测试,分别测试 1、10K、100K、1M 个任务时,这些编程语言的表现。(附:作者在去年做的对比 不同语言运行100万个并发任务需要多少内存?)
作者分享了使用 Streamlit 开发 Web UI 的体验,介绍了在集成语音接口和处理长时间运行任务时遇到的挑战,并分享了如何通过自定义组件和多线程来克服困难。
8、使用 GitHub Actions 运行 Python 脚本
作者分享了使用 GitHub Action 作自动化的经验,着重介绍 GitHub Action 工作流的配置,如何调用 Python 脚本,实现了自己的一项自动化任务。
作者受到 Python 打包解决数独问题的启发,开发了一个名为 pipip 的求解器,利用 Python 包依赖解析器来解决布尔可满足性(SAT)和 0/1 整数规划(IP)问题。文章详细解释了原理、实现细节和使用示例。
作者运行了 6 年的 Django 项目有近 300 个模块,如何降低迁移的风险成了一项挑战。文章介绍了用 django-model-info 生成迁移图,识别安全压缩的迁移路径并做压缩,整个过程减少了迁移文件数,优化了部署时间。
了解的编程语言越多,你对它们的理解就越深。作者对比了 Python、R、Haskell、APL 和 Julia 等语言实现累积运算(如accumulate和cumsum)的方法,能看出它们在解决相同问题时的多样性。
10 多种编程语言执行 10 亿次嵌套循环,所花费的执行时间做成了动图,看到末位的 Python 一直在龟速挪动,真为它感到着急……

🐿️项目&资源
提供标准化的接口,让开发者可方便地使用多个 LLM。使用类似于 OpenAI 的界面,专注于聊天模式。(star 5.6K)
2、opennb:从 GitHub 代码仓或 URL 中打开 Jupyter 笔记本
支持基于 Github 代码仓文件路径打开 ipynb 文件,自动检测默认分支,支持使用指定分支。也支持直接的 URL 打开 ipynb 文件。支持给笔记本传递参数。
基于 Plotly 实现的简单工具,可绘制美观且交互式的山脊线图。

4、Qwen2.5-Coder:阿里云 Qwen 大语言模型的代码版本
功能强大的国产开源大语言模型,支持 92 种编程语言,上下文长度为 128K Token。(star 3.1K)
5、pex: 用于生成 .pex 文件、锁文件和 venv 的工具
.pex 是一种 Python 可执行文件,是对 PEP-441 中思想的拓展,使 Python 程序的部署像cp 一样简单。单个 pex 文件可以包含多个 Python 发行版,这意味着它可在 Linux 和 OS X 间移植。(star 2.9K)
6、pipe-operator: Elixir 管道运算符的 Python 实现
这个库让你在 Python 中用类似于 elixir 管道的语法。
从东方财富获取数据,实现了若干种选股策略,包括海龟交易法则、缠中说禅牛市买点,以及其他若干种技术形态。(star 2.2K)
8、LLMLLM-Engineers-Handbook:LLM 的实用指南手册
这本电子书的目标是教你用最佳实践创建端到端的基于 LLM 的系统,包括数据采集与生成、训练管道、简单的 RAG 系统、生产就绪的 AWS 部署、全面的监控、测试和评估框架。(star 1.8K)
一款受 Spiderfoot 启发的多功能扫描仪,旨在自动化你的侦察、漏洞赏金和 ASM。(star 7.1K)
一个自托管的网络爬虫,通过 XPath 指定元素来抓取数据。支持以 URL 进行抓取、管理之前的任务、用户管理、查看日志、统计分析、集成 AI 等功能。(star 1.2K)
支持为模块定义明确的规则,并在外部模块导入你模块前,校验它是否符合这些规则,减少因导入不当或环境配置错误而导致的错误。
12、zerox:由视觉模型支持的 PDF 转 Markdown
利用视觉模型 AI 作精准的文件内容提取,克服奇怪的布局、表格和图表等难题。(star 6.7K)

🥂讨论&问题
公司有很多 Python 项目,生产用什么部署方案?如何作包管理?多服务间通信是用 http 还是 rpc?
pyvideo 上有 19163 场会议演讲,大家有什么最喜欢的演讲或演讲者可以推荐么?
🐧 往年回顾
Python 潮流周刊#29:Rust 会比 Python 慢?! (2023.12.02)
80 Django 项目性能调优
博客原文 | 发布时间:2024-12-07
🦄文章&教程
如何提升 Django 项目的性能?文章详细介绍了数据库优化、缓存策略、Django ORM 查询优化、异步编程、前端性能技术、使用 LoadForge 作负载测试、多实例扩展、性能优化时的安全考虑、以及持续监控和优化等内容。
文章介绍了一些优化 Django 项目性能的常见技术和最佳实践,如使用 APM 工具监控性能、用 django-silk 作分析、理解 QuerySet 原理、优化数据库查询、优化数据库设置、设置缓存、异步,等等话题。
Emacs 是一个极其强大的编辑器,文章介绍如何用它打造好用的 Python 开发环境,配置各种工具和插件,实现代码智能、linting 和静态分析、调试和环境管理等功能。
作者在年终回顾中分享做过的一些事:LearnDjango 网站、视频课程、书籍更新、教程/写作、Django 聊天播客、Django News 周刊,等等。
4Chan 的 CAPTCHA 用于验证用户是真人还是机器人,作者训练了一个在浏览器中运行的机器学习模型,达成了 90% 的破解成功率。文章介绍了数据获取、模型创建和训练的过程,以及实际测试的过程。
现成的解决方案和大模型框架可帮助你快速开发生成式 AI 项目,但随着版本演进,这些框架可能成为阻碍。文章提出了开发 RAG 应用的 2 层方法,创建一个无需现成组件即可维护的解决方案。
这篇教程分享了如何用 Flask 开发一个小应用,为手机游戏 Pokemon TCG Pocket 找同玩。能看出 Flask 可快速将简单想法变为一个网站项目。
开放数据库连接(ODBC)自 90 年代起一直是访问数据库的标准。这个驱动程序是如何工作的,用 Python 开发一个 ODBC 会是什么样子?文章实现了简单 ODBC 驱动和 PEP-249,最后也提及一些不再依赖 ODBC 的 Python 库。
python-build-standalone 提供可正常工作的独立 Python 发行版,已被 uv、Rye、Bazel 等工具下载超 7 千万次。该项目自 12.17 日起将正式转移给 Astral 组织(Ruff 和 uv 的开发团队)。
Textual 用于创建轻量级、强大、基于文本的用户界面,文章介绍如何用 textual-dev 工具来调试 TUI 应用,包括用开发者模式调试和使用通知方式作调试。
文章讨论了 HTTP cookies 在 Web 开发中的复杂性,特别是在不同浏览器和编程语言中处理 cookies 的差异性,如 Golang、PHP、Python、Ruby 和 Rust。
Advent Calendars(圣诞日历)从 12.1 至圣诞节,每天隐藏一个小礼物。在程序员圈子,每年会出现一些与开发相关的挑战,作者每年做一次汇总,今年已收集 25 个日常挑战活动。
🐿️项目&资源
一个可实现精确图像编辑的智能交互式系统,用户友好的界面、 AI 驱动的建议、精确的本地编辑。(star 2K)

用于在大型 Python 项目中强制遵循架构规则,维持依赖关系,使项目结构更清晰、易维护和模块化。
3、pdf-extract-api:用 OCR + Ollama 解析 PDF
以超高精度将任何图像或 PDF 转换为 Markdown 或 JSON 文档,使用 FastAPI 构建的 API,并使用 Celery 作异步任务处理,Redis 用于缓存 OCR 结果。(star 1.4K)
使打印调试信息更容易,另外提供了基本的基准测试功能。最早是 fork 自 IceCream,但已几乎完全重写,目前包含很多新功能。
5、python-fire:为 Python 对象生成 CLI
谷歌开源的库,支持快速创建 CLI,有助于开发和调试 Python 代码,使 Bash 与 Python 间的转换更加容易。(star 27.2K)
具有彩色输出、结构化日志、时区感知的时间戳、文件日志轮转和对函数执行的跟踪,支持在详情中处理任何数据类型。
7、generative-ai-project-template:streamlit+fastapi+llm 的 AI 项目模板
一个生成式 AI 模板,包含功能:LLMs、信息提取、聊天、RAG 等。使用 Python uv 库来管理包,loguru 记日志,Streamlit 前端 和 FastAPI 后端。
使用多个 AI 代理来做出交易决策,支持收集和预处理市场数据、量化交易、风险管理、投资组合管理等。
9、Progresspal:去中心化的可迭代对象、函数和日志跟踪器
通过去中心化方式,让用户可协作并监控在不同设备和进程上运行的各种脚本的实时进度。
一个桌面应用,用可视化方式连接不同 Python 函数/可调用对象,生成灵活的参数化行为/数据/应用/代码片段。(star 1.1K)

11、pydantic-ai:同时用 Pydantic 和大模型
Pydantic 团队开源的代理框架,减轻使用生成式 AI 开发生产级应用的痛苦。使用 Pydantic 校验结构化响应和流式响应,类型安全的依赖注入系统,集成 Logfire。(star 2.7K)
12、skyvern:用 LLM 和计算机视觉做工作流自动化
使用大模型和计算机视觉来自动在浏览器上执行工作流,替代手工操作。不依赖 DOM 解析和 XPath,不受网站布局变化影响,支持在从未见过的网站上操作。(star 10.9K)
🐢播客&视频
1、2024 年 PyCon China 视频列表(18个)
2、2024 年 PyCon Australia 视频列表(88个)
🐧 往年回顾
Python 潮流周刊#30:非洲 Python 社区给 PSF 的一封公开信 (2023.12.09)
81 在个人电脑上运行 GPT-4 级别的大模型
博客原文 | 发布时间:2024-12-15
🦄文章&教程
作者在自己 64GB 的 MacBook Pro M2 上运行 Llama 3.3 70B 模型,文章介绍了操作过程,用它来写作和编程,得到了很不错的效果。(PS. 看着自己新到手的 MBP M4,我已经有点急不可待跑跑本地大模型了~~)
一则新的 PEP,提议给 CPython 添加一个零开销的调试接口,让调试器/分析器能安全地连接到运行中的 Python 进程,无需停止或重启。目前该特性已经在 PyPy 中实现,期望能合入 Python 3.14。
如何处理 Celery 任务可能出现的各种故障,提升工作流的韧性?文章针对任务失败的三种场景(瞬时故障、资源限制和竞态条件)给出了解决方案,讨论了如何处理进程中断、内存溢出、任务超时、优雅停机等问题。
如何制作一份 Github 任务列表来检查文件中的所有函数?作者写了个脚本,通过正则表达式解析所有的函数,做成待办检查清单。
关于为什么推荐使用 uv,以及如何使用它的全面指南。介绍了 uv 的安装方法、如何将其融入现有工作流、管理虚拟环境、管理软件包,以及 uv 特有的工作流程和高级用法。
6、2024 年的类型化 Python:被广泛采用,但可用性仍有问题
PEP-484 引入 10 年了,Python 类型系统的发展现状是怎样的,以及开发者正在使用哪些工具?JetBrains、Meta 和 Microsoft 合作了这份全面的调查,有超过 1000 人参与。
最近,Python 已成为 Github 上使用最多的语言,在其它方面,Python 的现状如何呢?文章基于社区最新的调查(即 9 月份发布的 2023 年 Python 开发者调查结果),分享了一些关键趋势,例如 41% 的开发者经验少于 2 年、多数 Web 应用运行在超大规模云、容器技术超过虚拟机和硬件……
如何让 Python 脚本在首次运行时自动创建虚拟环境并安装依赖?作者分享了如何用 uv 来简化 Python 脚本的依赖管理,避免全局安装包,另外可替代 pipx 和 pyenv 来管理 Python 版本和 CLI 工具。
9、用 Django 和 Wikipedia 文章开发一个聊天后端
如何用 Django 框架开发一个简单的聊天机器人,并提供给它维基百科内容,实现更有意义的问答效果?文章介绍了 Django 项目设置、加载百科数据、生成和保存嵌入、开发聊天界面等内容。
PyJokes 库可生成与编程相关的笑话,可为你的 Python 项目增加幽默感。其它语言能不能用它呢?文章介绍了如何在 Java、Ruby 和 Node.js 中集成 PyJokes,无需 API 或网络。
Python 的 match-case 不能匹配迭代器,作者通过自定义模式匹配行为,扩展成支持对迭代器做匹配,从而让模式匹配更精细和灵活,可处理复杂的数据结构和生成器。
12、圣诞日历:关于设计模式
圣诞日历从 12.1 到 12.24,作者在 2021 年每天分享一个他喜欢的博客,2023 年每天发一篇关于技术写作的文章,而今年的主题则是软件和设计模式。
🐿️项目&资源
1、qutebrowser:Python + Qt 开发的类似 vim 的浏览器
Python 开发的以键盘为中心的类 vim 浏览器。(star 9.9K)

简单的 Python GUI 框架,在 webview 中通过 HTML 呈现 Python 运算值。
3、django-daisy:用 daisyui 开发的现代 Django 仪表板
使用 DaisyUI 和 TailwindCSS 开发成的现代、时尚且响应迅速的管理员仪表板。支持 RTL、多主题、增强的 UX/UI 等特性。
4、icloud_photos_downloader:从命令行中下载 iCloud 照片
iCloud 照片下载器,支持 Linux、Windows 和 macOS,除了命令行方式,还提供可执行文件,也可从包管理器下载(如 Docker、PyPI、AUR、npm)。(star 7.2K)
5、vanir:基于源码的静态分析工具,可识别缺失的安全补丁
Python 开发的源码静态分析工具,从 OSV 中获取最新的 CVE 及其签名,可以扫描系统中未升级补丁的漏洞。目前支持 C/C++ 和 Java 源码。
开源的 RAG,可与 ChatGPT 和 MCP 集成,也可完全在本地使用。所有神经网络(LLM、reranker、embedding)都在云或 PC 上运行,确保数据安全。
使用持久存储开发的用于向量搜索的开源数据库,简化嵌入的检索、筛选和管理。使用 Rust + Lance 开发,支持 Python 和 JavaScript,支持向量相似性搜索、全文检索和 SQL。(star 4.9K)
校验类似 DataFrame 的数据对象,从而使数据处理管道更具可读性和稳健性。(star 3.5K)
9、python-sdk:MCP 官方的 Python SDK
模型上下文协议(MCP)的 Python 实现,提供与 LLM 交互的客户端和服务端功能。
支持 Docker 部署的 PDF 管理器,在多台设备上提供无缝的用户体验。简洁且响应式 UI,多种主题,支持共享 PDF 且设置密码/查看次数和到期时间,进度条显示每个 PDF 的阅读进度。

Python + Vue 开发的集安全认证、加密传输和加密存储于一体的高级网盘应用。支持文件管理、高级加密、端到端安全传输、共享网盘、多种认证。
12、Perplexica:AI 驱动的搜索引擎,Perplexity AI 的开源替代
开源的 AI 搜索引擎,不仅能联网搜索,还能理解你的问题,使用先进的机器学习算法来优化结果。(star 17.4K)
🐢播客&视频
一个专门关于 Django 活动和视频的网站:DjangoTV,已发布今年 DjangoCon US 的系列视频。
这期视频教程借助 Replicate 的 AI 服务来微调开源的 Flux 图片生成模型,使用自己的照片打造一个类似 Midjourney 的 AI 生图工具。
🐧 往年回顾
Python 潮流周刊#31:继 iOS 后,新 PEP 提议官方添加 Android 为支持平台(2023.12.16)
82 美国 CIA 如何使用 Python?
博客原文 | 发布时间:2024-12-21
🦄文章&教程
CIA 用 Python 做黑客攻击以及实用工具,最喜欢的版本是 Python 2.7 和 3.4。文章收集了 CIA 运用 Python 的编程实践,包括遵循谷歌 Python 风格指南、用 pip2tgz 做包下载、本地 pypi、Pycharm + pyenv、在远程服务器执行测试、CLI 脚本模板等。
Python 依赖管理工具很多样化,文章逐一分析了 13 款工具的优缺点。作者的简单建议是:若只依赖 Python 包,则推荐 uv 和 pipx;若需维护多个互斥环境,则推荐 pip + venv + pip-tools + pyenv。
作者特别讨厌 LangChan 和 LlamaIndex,认为它们是过度封装的典型代表。文章举了 LlamaIndex 使用依赖注入的例子,并解释了它对二次开发的不友好,另外对比了 Requests 作者的新作品 SimpleMind,看到了不过度封装的实现应该是怎样的。(附:Octomind 团队的 为什么我们不再用 LangChain 开发 AI 智能体?)
文章详细解释了如何用 Python 实现 DNS 协议的多数功能,创建出一个可信赖的本地 DNS 服务器。
对 Python 社区中多款 Web 开发框架的对比分析,包括 Reflex、Django、Flask、Gradio、Streamlit、Dash 和 FastAPI,它们的优缺点各是什么?
元循环解释器用一门语言自身来编写该语言的解释器。为什么要开发元循环解释器?好处是能高度控制代码执行、高效追踪代码执行过程。这篇长文详细介绍了元循环解释器能做的事以及如何实现。
7、该放弃 Spark 选择 DuckDb 或 Polars 吗?
新兴的 DuckDB 和 Polars 这种轻量级计算引擎越来越流行,是否可取代传统的 Spark 了呢?文章通过性能、执行成本、开发成本和引擎成熟度等维度作了基准测试,发现 Spark 在扩展性和成本方面仍有优势,还不到完全放弃的时候。
作者分享了一个由于 Django 错误设置导致的远程代码执行漏洞案例,Django 的一些默认行为会导致安全问题。作者做了一些努力,但被标记“wonfix”,因此呼吁开发者关注潜在的安全问题,希望引起官方重视做出修复。
作者为了省去查看手机的麻烦,在电子墨水屏上展示儿子的学校时间表。他通过 Playwright + Pillow 获取内容并转为图片,再用 Werkzeug 库创建一个简单的 Web 服务,并用 Arduino 实现自动唤醒和更换图片。
一行不起眼的“foo.bar = foo.bar”实际上创建了一个循环引用,造成内存泄漏。在 monkeypatch 场景下容易出现类似用法,文中分享了用 weakref 来避免循环引用的小技巧。
文章探究了一个有趣的问题:将质数绘制在极坐标系中能看出什么规律?作者用 sympy 库生成质数,用 matplotlib 作可视化,最后出现一个美丽的图案!如何解释它呢?

MCP 协议用在大模型和数据源间建立安全双向的链接,这到底意味着什么?它的出现能解决什么问题?作者详细演示了官方示例的步骤,解释了数据交互的过程,并用真实数据集做测试,可以看出 MCP 还是很有用的。(附:关于使用 MCP 开发的反思 )
🐿️项目&资源
1、markitdown: 将各种文件转换为 Markdown 格式
微软最新开源的热门项目,支持将各类文件转换为 Markdown 格式,除了 office 三件套,还支持 pdf、图片、音频、HTML、CSV、JSON、XML、ZIP 文件等。(star 24.3K)(附:一个利用 markitdown 实现的在线网站 office 文件转 Markdown)
2、systemd-pilot:用于管理 systemd 服务的桌面程序
一个用于管理 GNU/Linux 系统上 systemd 服务的桌面应用,支持查看、筛选、启动、停止、重启服务,支持用模板快速部署、简单搜索、全面集成到 GNOME 桌面。
Python 全栈项目,一个功能齐全的电商平台,具有强大的管理员面板和现代的用户界面,支持多图上传、购物车、愿望单、仪表板、PDF 发票、销售跟踪等功能。

用 Python 开发的一站式 AI 影视解说与自动化剪辑工具,利用 LLM 撰写文案、自动化剪辑/配音/生成字幕,助力高效的内容创作。(star 2.6K)
腾讯家的视频大模型,已开源文本生成视频、待支持图像生成视频。(star 6.4K)
6、SeleniumBase:网络自动化、测试以及绕过机器人检测
一站式浏览器自动化框架,支持网页抓取、自动化测试、爬虫、绕过验证码等功能。(star 7.1K)
7、BlackSheep:快速的 Python ASGI Web 框架
一个异步 Python Web 框架,构建基于事件的应用。受到 Flask、ASP.NET Core 的启发。(star 2K)
8、PDFMathTranslate:基于 AI 的 PDF 文档全文双语翻译
Python 开发的 PDF 文档翻译及双语对照工具,支持 Google/DeepL/Ollama/OpenAI 等服务,提供 CLI/GUI/Docker,保留公式、图表、目录和注释。(star 10K)
9、cookbook:谷歌 Gemini API 的示例和指南
官方发布的一系列关于 Gemini API 的指南和示例。Gemini 模型支持多模态,可在文本、图像、代码和音频之间无缝推理。(star 9K)
10、tkforge:用 Figma 轻松创建 Python GUI
类似于 Tkinter Designer,在 Figma 中通过拖拽方式创建 GUI项目,用这个工具转换为可执行的 Python 代码。
11、MegaParse:利用 LLM 无损解析 PDF、Docx、PPTx
功能强大且灵活的解析器,可轻松处理各种类型的文档,无信息丢失、快速高效。(star 4.6K)
一款基于 Markdown 的笔记应用,具有任务管理功能。界面简洁,多种主题,支持任务、图片、文件和代码片段。

🐧 往年回顾
Python 潮流周刊#32:打造个人的新闻聚合阅读器 (2023.12.23)
83 uv 的使用技巧
博客原文 | 发布时间:2024-12-28
🦄文章&教程
1、UV 的使用技巧
文章分享了uv工具的一些实用的技巧,包括在不污染虚拟环境的情况下临时添加依赖、创建几乎独立的脚本、快速测试和运行 Python 工具、运行一次性的 Python 工具、清理 uv 缓存。
2、用 pyinfra 和 Chimera Linux 开发一个小型 CDN
内容分发网络(CDN)可提升网站访问速度,作者通过自建 CDN 实现博客平均响应时间从 807 毫秒降到 189 毫秒。文章详细介绍了网络架构、服务器配置、TLS 证书管理以及如何使用 GeoDNS 来最小化访问延迟。
3、高效的 Python 开发者工具(2024 年 12 月)
2024 年 Python 开发者工具的最新趋势和最佳实践有什么?作者分享了一些反模式问题、推荐做法和工具,包括 uv、ruff、Mypy、Pytest、Cookiecutter 和 Cruft 等。
作者在两年前遇到一个多线程 bug,分析代码找到了疑似原因,尽管没复现,但解决了该问题。然而,两年后又出现同样的问题,这次深入调试,终于找到根本原因并可靠复现,真正地解决了这个棘手的 bug。
如何用 Python 实现比特币交易?文章介绍了加密货币概念、比特币的交易机制,如何用 Python 实现用加密技术创建、签署和广播比特币交易。
作者认为 Poetry 作为构建工具时很反直觉和容易出错,文章指出了它的常见问题,包括梦魇般的取地址运算符、误导性的 include 键和薛定谔般的可选依赖项。
7、Python 打包:为什么我们得不到好东西,第 1 部分
关于 Python 打包的系列文章第一篇,讨论了 Python 打包的现状、存在的问题以及如何应对这些问题。讨论了包名与导入名不一致问题、依赖地狱和安装失败的问题,强调了虚拟环境的重要性。
8、Python 性能优化的幕后功臣:__pycache__与字节码缓存机制
__pycache__文件夹和.pyc文件有什么作用?如何合理利用 Python 的字节码缓存机制,来提升应用性能?
作者开发了个网站,可展示和搜索所有 UUID,文章介绍了几个主要挑战及解决方案,包括浏览器渲染限制、UUID 生成顺序和全搜索功能。
Python 的数据类相当酷,但它们的实现机制是什么呢?文章试图向我们解释清楚这里面的门道,包括 __annotations__ 、exec、自定义数据类装饰器、以及 frozen 参数等内容,帮助读者更好地理解数据类的工作原理。
符号执行(Symbolic Execution)是一种软件测试和分析技术,通过将程序的输入表示为符号(而不是具体值)来执行程序。文章介绍了一种将 Python 不可重载语法变得可重载的方法,不需修改编译器,而是用元编程技术将 Python 代码转化为 Z3 表达式。
如何在 Python 的 FastAPI 应用中实现类似 cron 定时任务的功能?作者利用了 FastAPI 的异步特性创建后台任务,避免了写单独的脚本和 CLI 命令,并且不需要在容器外允许任务。
🐿️项目&资源
让 AI 代理轻松与浏览器交互,支持视觉+HTML 提取、自动多标签管理、提取 XPath 并作精确的 LLM 操作、支持自定义操作、自纠正、支持 LangChain、并行化尽可能多的代理。(star 7.2K)

字节开源的一个用于大规模推荐模型的深度学习框架,建立在 TensorFlow 上,支持批量/实时训练和部署。(star 3.7K)
整合了不同开源项目的资源,包含了查询苹果 FindMy 设备所需的所有功能,提供了统一的基础组件。跨平台、获取并解密位置、扫描附近的 FindMy 设备。(star 1.5K)
4、ShortMoji:在任意地方通过快捷键插入 emoji
Python 开发的小工具,整理了 137 个不同表情符号,让你用键盘快捷键快速插入表情。仅适用于 Windows。
5、ha_xiaomi_home:用于 Home Assistant 的小米设备集成
小米官方提供的集成组件,可让你在 Home Assistant 中使用小米 IoT 智能设备。(star 15.4K)
Konfig 是一家专注于使 API 集成更简单的开发者工具创业公司,现在开源了其所有产品代码、文档资源和其它副产品。(star 1.2K)
7、ai-vocabulary-builder:AI 智能词汇工具
一个利用了 AI 技术的智能英语生词本工具,能帮你快速构建起自己的英语生词库。独创的高效生词收集模式,通过有趣的故事模式、测试模式助你掌握生词。
8、Genesis:给机器人与嵌入式 AI 学习的生成性世界
专门为机器人/嵌入式 AI/物理 AI 应用而设计的物理平台,是一种全新的通用物理引擎、机器人仿真平台、真实感渲染系统、生成式数据引擎。(star 19.8K)
9、PromptWizard:可感知任务的由代理驱动的提示词优化框架
微软开源的离散提示词优化框架,具有自我优化机制,关键组件:以反馈驱动优化、评价并综合多样化的例子、自生成思维链步骤。(star 1K)

从 iMessages、Twitter 书签、ChatGPT、Gmail 和 LinkedIn 等应用中导出你的个人数据,提供了一个 Python SDK 和一个桌面应用程序。(star 1.3K)
11、awesome-llm-apps:精选的各类 LLM 项目
收集了大量用 OpenAI、Anthropic、Google 家大模型以及 LLaMA 开源大模型开发的应用,从优秀的项目中学习 AI 在不同领域的应用。(star 9.8K)
12、python-hiccup:用纯 Python 数据结构表示 HTML
Hiccup 语法的 Python 实现,用 Python 的 list 或 tuple 来表示 HTML 元素,用 dict 来表示元素属性。旨在使 HTML 渲染程序化、简单且易于阅读。
🥂讨论&问题
1、2024 年精选最佳 Python 库和工具——第 10 版
对今年 Python 库/工具的年度精选推荐,包含通用类与 AI/ML/数据类,共 20 个。
2、求教 Python 问题, GPT o1 跟 Gemini 2.0 都解决不了
Python 中的连续赋值操作“a=b=c”,结果可能跟你想象的不太一样!
🐧 往年回顾
Python 潮流周刊#33:FastAPI 很好,Flask 也没死,它们都有未来(2023.12.30)
84 2024 年 Python 的最佳实践
博客原文 | 发布时间:2025-01-04
🦄文章&教程
一篇比较详尽的 Python 开发实践指南,包括 Python 的选择与管理、开发项目用到的工具(包管理、格式化和代码检查)、一些语言语法的使用、测试工具、打包工具、日志、虚拟环境等等内容,可以说是面面俱到了。
2024 年创建 Python 项目的最佳实践是什么?有什么可推荐的工具呢?作者的清单是 uv、ruff、pyproject.toml、pyright、pydantic、pytest 和 click。文章在 Reddit 得到很多赞和回复。
2024 年的 Flask 社区发生了哪些有趣的事呢?作者从几个方面回顾了 Flask 的发展,包括版本发布、框架开发速度、一些新特性、向后兼容性和竞争情况及流行度等。
4、介绍 Annotated Logger:一个在日志中添加元数据的 Python 包
Github 的漏洞管理团队新开源了一个日志记录库 Annotated Logger,通过装饰器来记录函数和类的执行情况,支持自定义日志对象,支持发送 JSON 格式的日志,支持在日志中添加 Git 分支和漏洞名称等字段。
如何在 Python 中调试内存泄漏问题?作者分享了一个 objgraph 库,可查看内存对象的增长情况,并通过信号触发运行时检查。文章介绍了如何用它来定位和可视化内存泄漏,有助于快速识别和解决内存泄漏问题.
6、使用 shiv 将 Python 项目打包成一个可执行文件
如何用 shiv 将 Python 项目及其依赖打包成一个可执行的 zip 文件(即 zipapp)?shiv 在运行时是如何提高运行速度的?shiv 支持什么其它功能,使用时有哪些需要注意的问题?
PyPI 官方博客介绍了项目隔离功能,可让管理员标记潜在有害的项目,防止恶意软件被安装。文章介绍了该功能的实现细节。自 2024.8 以来,约 140 个项目被标记为隔离,仅一个被纠正。
8、使用 VS Code 和 Sentry 调试 Python
如何在 VS Code 中设置和使用调试功能?文章介绍了安装扩展、配置调试环境、使用断点、添加变量监控等内容,如何处理常见异常如 FileNotFoundError 和 JSONDecodeError ,并展示了如何将 Sentry 用于生产环境持续监控和调试代码。
介绍了使用 Solara 的 UI 组件在 Jupyter 中创建一个交互式仪表板,最终产品可允许用户在地图上过滤、可视化和探索数据集。该系列第二篇介绍如何部署服务,第三篇介绍添加更多组件来扩展仪表板。
juv 是一个用于 Jupyter 笔记本中简化 Python 环境管理的工具,可将依赖包直接嵌入笔记本文件,更易设置与分享使用。文章还介绍如何将 juv 与 pyds-cli 集成,作临时数据分析,增强复用性并减少环境冲突。
11、Python:使用 sys.monitoring 监视变化
Python 3.12 中引入的 sys.monitoring 可监听特定代码行上的某些事件,从而提供细粒度的控制。文章通过实际例子展示了如何用它监视 sys.path 的变化,如何设置监控回调函数,展示了它在调试复杂代码时的强大用处。
Boids 算法是一种模拟鸟类群体行为的人工生命程序,产生逼真的鸟类自然动态。文章深入讲解 Boids算法的实现,介绍如何在 TFT 显示器上实现 Boids 动画,探讨了添加捕食者和栖息行为等复杂行为的可能性。
🐿️项目&资源
1、enlighten:Python 控制台程序的进度条增强
一个 Python 控制台彩色进度条库,优势在于可直接写入 stdout 和 stderr,支持 Jupyter Notebooks。
2、migrate-to-uv:将项目从 Poetry/Pipenv 迁移到 uv
帮你快速将 Poetry/Pipenv 项目迁移成当前流行的 uv 包管理器。
3、minimalistic-fastapi-template:简单但健壮的 FastAPI 项目模板
一个现代化、生产就绪的 FastAPI 项目模板,支持 CRUD、异步 SQLAlchemy 及 PostgreSQL、自定义异常处理、CI 和测试管道、pre-commit 代码检查、一键部署 Railway。
4、minimind:3 小时完全从 0 训练 26 M的小参数 GPT
完全从 0 开始训练出一个不到 30 M的微型语言模型,普通个人 GPU 也可快速推理甚至训练。不仅是一个开源模型的实现,也是入门大语言模型(LLM)的教程。(star 3.2K)
让 Django 支持基于异步类和函数的视图,支持 Django 4.1+。
一个轻量级框架,一致性蒸馏视频扩散模型,实现 8 倍推理加速。支持蒸馏/微调/推理最先进的开放视频 DiTs。
一款本地网关,确保 AI 生成的建议遵循最佳实践,同时保护代码的完整性,并保障个人隐私。放心使用 AI,不必担心安全性和生产力。
Python 实现的开源短链接服务,提供有免费的网站。支持创建与自定义短链接,支持链接管理与跟踪,可预览社交媒体效果。后端基于 Flask + SQLite 实现,前端 JavaScript 支持移动端响应式。
利用 AWS 的 CloudWatch 事件规则触发 Lambda 函数,利用数据库和 ChatGPT 获取荷兰语单词、英文翻译及例句,自动发送邮件。
一种用于自然色彩混合的新混合方法,在混合过程中生成带有色调变化和自然二次色的饱和渐变,更接近于真实的颜料色彩。(star 2.7K)

一个轻量级、易用、可扩展的框架,用于时间序列分析,从理解关键统计数据和特征、检测变化点和异常,到预测未来趋势。(star 5.4K)
适用于 Linux 和 BSD 的模块化服务器管理面板,用 Python3 和 AngularJS 开发。内存占用和 CPU 使用率低。可在低端机器、墙插、路由器等设备上运行。(star 7.6K)
🐧 往年回顾
Python 潮流周刊#34:Python 3.13 的 JIT 方案又新又好!(2024.01.06)
85 让 AI 帮你写出更好的代码
博客原文 | 发布时间:2025-01-11
🦄文章&教程
1、如果一直要求 LLM “写出更好的代码”,它们能写出更好的代码吗?
作者想要做一个提升 AI 编程质量的实验,不断要求大模型写出更好的代码,经过多轮迭代,竟然将一个简单编程任务提升了 100 倍性能!这让我们看到了提示词工程的重要性,也看到了 LLM 在代码优化方面的潜力。下次我也试试看……
文章介绍了 Python 并发编程的三种主要方式:线程、进程和 asyncio,使用实际的代码示例和性能测试来分析它们的优缺点,展示出这几种方法的特点和适用场景。
3、为什么在 Python 中 hash(-1) == hash(-2)?
怎么回事?Python 中的 hash(-1) 竟然等于 hash(-2),就是等于 -2?作者通过查阅 Python 官方文档和源码,追踪hash函数的具体实现,终于找到了原因:C 语言使用 -1 表示错误返回值,因此 hash() 函数可能出错返回 -1,如果正确返回也是 -1,容易混淆,故约定用 -2 来替代……
作者利用 Cloudflare 的 Python Workers 将微软最近开源的 MarkItDown 做成了一个网站。利用的是 Pyodide,它使用 WebAssembly 移植 CPython,从而在浏览器中运行 Python。
5、PEP-769:给 ‘attrgetter’ 和 ‘itemgetter’ 添加 ‘default’ 关键字参数
一则新的提案,提议给 operator 模块中的 attrgetter 和 itemgetter 函数添加 default 关键字参数,以便在目标属性或项目缺失时返回默认值,避免异常并简化代码。
pipx 是一个好用的 Python 包管理工具,文章介绍了它的用途和部分局限性,最主要是分享了三个提高 pipx 使用效率的技巧:通过“注入”依赖来管理环境,利用 pipx 自带的 pip 作安装,以及通过 pipx 安装自身来获取更新。
从多个维度对两个 Python 框架做了比较,包括内置电池、架构、后端与全栈、易用性/学习曲线、现代性、性能、ORM 与配置等。至于选择哪个,还是得基于项目需求。
作者曾参与开发一个 Python 解释器 Skybison,它使用了移动垃圾回收器,通过移动对象并更新指针来整理内存。文章介绍了如何在垃圾回收时处理弱引用对象,如何在自定义的垃圾回收器实现。
9、AI-text-to-video-model-from-scratch:从零开发一个微型的文本到视频模型
如何从零开始实现一个文生视频模型?文章详细介绍了相关的理论概念、GAN 架构、模型训练、实现具体功能(文本嵌入层、生成器层、判别器层等)、以及用训练的模型生成 AI 视频。
Python 能灵活开发项目,也可构建长期的基础设施。文章介绍了 DevOps 工作用到的 15 个库,包括开发 Web 仪表板的 Django 及 Flask,作任务调度的 Schedule 及 Airflow,作网络分析的 Scapy,以及用于容器化和云交互的 Docker SDK 和 Dagger,等等。
贫血影响着全球数百万人,传统检测方法耗时较长,因此作者开发一个能快速评估、准确预测贫血的系统。项目用 scikit-learn 实现了随机森林分类器,基于 Flask 开发 Web 界面,代码已开源。
12、Google 发布 AI Agent(智能体)技术白皮书
Agent 跟大模型有什么区别?人类区别于动物的标记是使用工具,而 Agent 则是会使用工具的大模型。介绍了 Agent 是如何工作的、使用什么推理框架、不同的工具类型、通过针对性学习提升模型性能、基于 LangChain 快速开发 Agent 等。

🐿️项目&资源
1、AI-reads-books-page-by-page: AI 逐页从 PDF 提取知识与生成摘要
一个简短的脚本,对 PDF 书籍作智能逐页分析,系统性地提取知识点并在指定间隔生成渐进式摘要,持久化知识库存储。智能跳过目录和索引页。
2、ai-book-writer: 用 AI 代理编写整本书
用多个专业 AI 代理协同工作,基于初始提示词创建连贯、结构化的书籍,自动化世界构建与设定管理,支持复杂、多章节的叙事。
基于最近火爆的 browser-use 项目创建的 Web UI,基于 Gradio 开发,支持多种 LLM,支持使用自己的浏览器,无需重新登录。 (star 2K)
上海交大开源的 TTS 语音合成工具,采用 ConvNeXt V2 的扩散 Transformer。支持多语言切换、语速调节和情感化表达。(star 8.8K)
5、AutoMouser:基于鼠标运动来生成浏览器自动化代码
这是一款 Chrome 插件,能实时跟踪鼠标的点击、拖动和悬停等动作,利用 OpenAI 的 GPT 模型自动生成 Selenium 自动化代码。
6、paper_to_podcast:将论文转化为三人对谈的播客
让 AI 帮你将论文转化为引人入胜的三人对话类播客节目,包含主持人、学习者和专家,提供有价值的见解和批判性思考,使复杂信息更易于理解和吸收。
7、xhs_ai_publisher:小红书 AI 运营助手(内容生成和自动发布)
一个自动化运营助手,提供图形化界面和自动化脚本,实现自动登录与发布文章,支持内容生成、图片管理和文章预览。
8、ipychat:IPython 的 AI 扩展,使其像 Cursor 一样
给 IPython 加上 AI 能力,帮你快速理解、调试和编写 Python 代码。上下文感知、带语法高亮的 Markdown 响应、支持多个大模型、交互式配置。
极简的 PyTorch 实现,使用 C99 和 Python 开发,旨在理解 PyTorch 及其它深度学习框架的内部机制。有趣的是,PyTorch 团队成员在 X 上邀请此项目作者加入 PyTorch。
10、dendrite-python-sdk:用于开发网络 AI 代理的工具
使网络 AI 代理能够像人类一样轻松浏览互联网,与元素互动、提取结构化数据、验证身份、上传/下载文件、浏览而不被屏蔽。
一个为 Django 社区收集热门项目的导航网站,目前收录了 800 多个项目。
12、zh-style-guide:中文技术文档的写作风格指南
一份适用于指导技术文档写作的开源电子书,给出了语言风格、结构样式、内容元素、标点符号、格式排版等方面的参考规范。(分享自@请叫我大萌萌)
🐢播客&视频
1、AI 制作的英文播客:Python潮流周刊第一季精选合集
我用谷歌的 NotebookLM 将本周刊第一季的合集制作成了两人对话的播客节目!听两位主持人煞有介事地从周刊中分享有趣的文章和项目,感觉很是神奇。(附:怎么能少得了第二季的呢,Python潮流周刊第二季精选合集—英文播客)
🐧 往年回顾
Python 潮流周刊#35:Python JIT 编译器和 Numpy2 即将推出 (2024.01.13)
86 Jupyter Notebook 智能编码助手
博客原文 | 发布时间:2025-01-18
🦄文章&教程
Notebook Intelligence (NBI) 是一个专为 JupyterLab 设计的 AI 编码助手和可扩展 AI 框架,它基于 GitHub Copilot 开发,并借鉴了其设计理念。文章介绍了相关功能和使用指导。
2、用纯 Python 写一个“Redis”,速度比原生 Redis 还快?
作者用 Python 模拟 Redis 开发了一个 NoSQL 数据库,实现了 5 种基本数据结构和相关操作,支持设置过期时间,支持 AOF 持久化。文章介绍了基本用法,以及跟 Redis 做了对比的情况。
3、30 分钟入门 Python 桌面端 + 分享我的开箱即用脚手架
作者分享了自己的 Python 桌面端项目,内容非常丰富,包括环境准备、功能组件安装(PyQt6 等)、PyQT 配置文件准备、详细的代码流程(基础组件、项目结构和代码细节)、结果展示等内容。
在使用异步的项目中,文件 IO 可能会成为瓶颈,文章介绍了如何使用 aiofiles 来实现文件的异步操作,包括异步读取文件、异步写入文件、异步处理多个文件。
如果你只想快速写一个脚本或启动 REPL,但需要使用特定 Python 版本和安装一些特定的依赖库,该怎么办才好?文章介绍了 uv 的使用技巧,以及创建独立脚本的用法。(附:一篇类似文章,你应该了解的 uv 杀手级功能)
Reflex 可通过函数式和声明式的方式构建响应式应用,这篇教程介绍如何用它开发一个简单的健身追踪网站,包括项目设置、基础代码、数据库操作、UI 界面等功能。

文章介绍了如何用自动化测试方法检查 Web 应用是否健康,使用了 Playwright + Axe-core 实现 Web UI 端到端自动化测试,内容还包括用参数化测试检查多路由、处理用户交互导致页面变化的场景。
如何提前检测出资源泄露的问题?文章介绍了用tracemalloc和pytest来实现资源泄漏检测的具体方法,并分析资源泄露的原因。
文章介绍了如何用 ffmpeg + Whisper 实现音频提取、音频转文字,以及批量处理字幕。最后能看到 Whisper 在处理中文时效果并不理想。
吴恩达老师分享了一些开发简单 Web 应用原型的最佳实践,包括使用 Python 和 FastAPI 开发、用 Uvicorn 运行后端应用、云端部署选择、MongoDB 数据库、OpenAI 的 o1 和 Claude 3.5 Sonnet 辅助编程。
文章系统梳理了时间序列分类的方法,分别介绍了基于距离、字典、集成、特征、区间、核函数及形状等多种分类模型,并通过实际数据集展示了模型的实现与计算过程。
BASIC 语言曾经非常流行,是初学者的首选语言,如今的 Python 已成为新的 BASIC。作者回顾了 BASIC 的发展,介绍了 Python 具备的诸多优点,解释为何 Python 能广泛流行的原因。
🐿️项目&资源
一个热门项目的 V2 版本,支持 Twitter 机器人、YouTube 短视频自动化、联盟营销(亚马逊和推特)。(star 5.6K)
2、Ghost-Downloader-3:跨平台多线程下载器
AI 赋能的新一代跨平台多线程下载器,支持多线程下载、智能加速、断点续传、下载记录、校验文件等功能。
3、Channels:为 Django 提供易于使用的异步功能
扩展了 Django 的功能,提供了 WebSocket、长轮询 HTTP、任务卸载等异步支持。(star 6.2K)
一个基于函数式编程模式的灵活框架,适用于并发和并行数据处理,可用于 ETL 系统、数据微服务以及数据收集。
5、uv-secure:扫描 uv.lock 文件,检查是否有漏洞依赖
扫描 uv 锁文件中的依赖项,检查这些包及对应版本是否存在漏洞。仅支持来自 PyPI 的包。
帮助你在 X 平台上部署自己的代理,支持 OpenAI、Anthropic 和 EternalAI LLMs 等技术。
7、fastcrud:专为 FastAPI 设计的异步 CRUD 操作
为 FastAPI 设计的包,提供强大的 CRUD 操作,通过自动检测连接条件、动态排序、偏移和游标分页等高级功能,进一步简化了开发流程。
8、Winloop:用于 Windows 的 uvloop 替代库
一个兼容 Windows 的库,基于 uvloop 修改而成。uvloop 是一个基于 libuv 的高性能 Python 异步 IO 库,是 asyncio 事件循环的替代。
9、fast-grpc:在 Python 中快速实现 gRPC
用 Python 快速创建简单的 gRPC 服务。
一个 Python 包和命令行工具,可在终端中绘制基本图表,快速实现数据可视化。支持自定义图表颜色、大小、标题和形状,通过标准输入来导入图表。(star 1.9K)
11、klp:查看结构化日志文件和流(logfmt、JSONL 等格式)
轻量级命令行工具,可分析和解析多种格式的结构化日志,支持 logfmt、JSON Lines、CSV、TSV、SQLite 等多种格式。
12、Open-Interface: 使用 LLM 控制任意电脑
将请求发给 GPT-4 等大模型,确定所需的操作,然后模拟键盘和鼠标自动化执行操作,并将进度截图发给大模型以便调整操作。(star 1K)
🐧 往年回顾
Python 潮流周刊#36:Python 打包生态依然不乐观 (2024.01.20)
87 媲美 OpenAI-o1 的开源模型
博客原文 | 发布时间:2025-01-25
🦄文章&教程
如何优化 Jupyter Notebook 以减少大模型的 Token 消耗和使用成本?作者通过排除 .ipynb 文件中的无用数据,如 base64 编码的图像和元数据,实现了 94% 的成本削减。
对 urllib3 项目作 2024 年总结,主要亮点包括获得了来自多个渠道的财务支持、对 HTTP/2 和 WASM 支持的进展,以及 LaunchDarkly 赞助修复的漏洞。
文章分享了一些编程学习资源,包括数学/统计学、机器学习、AI 框架、数据分析等方面的文章、视频和书籍内容。
作者通过 PyO3 将 Python 解释器嵌入到 Rust 的测试执行器中,文章介绍了实现过程,包括从源码编译 Python 的方法、使用 PyO3 执行 Python 代码、对复杂类型和动态类型的处理。
5、PEP-773:Windows 平台的 Python 安装管理器
在 Windows 上安装 Python 发行版有三种主要方法,存在一些局限性,无法满足现代使用场景。这则 PEP 提出了一种统一的 Windows 安装工作流,规避现有流程的局限性。
如何将 Emacs 打造成一个强大的 Python 开发环境?作者从代码智能提示、代码检查与静态分析、代码调试、环境管理等方面,详细介绍了一些实用的插件和配置,演示了具体用法,分享了个人经验和对工具选择的见解。
对于 GB 级别的大文件,Python 处理时有什么最佳实践和技巧?如何避免内存错误、提升速度并且优化资源使用?文章分享了 10 个文件处理方法,以及一些好用的文件处理库。
作者去年分析了开源项目的 pyproject.toml 文件使用了哪些构建后端,今年也做了分析并优化统计图,结果看到排在前几位的依然是:setuptools、poetry、hatching、flit。
介绍了如何在 Python ASGI 应用中实现日志上下文传播,使日志能够自动携带相关的上下文信息(如用户 ID 和平台类型)。使用了 contextvars 自定义日志格式化器,并实现了日志处理中间件自动标记日志消息。
该 PEP 提出了一种机制,允许 Python 包在未显式指定额外依赖时默认安装某些可选依赖,针对推荐但非必需的依赖和多后端/前端支持的场景,提供默认安装的解决方案。
如何用 Turtle 库绘制国旗?如何解决复杂图形、坐标转换、贝塞尔曲线、样式解析等问题?文章分享了 Turtle 图形绘制和 SVG 解析的技术,整体效果还不错。
12、我的开发工具和工作流分享
作者分享了自己在开发软件时使用的工具和流程,涵盖本机开发环境、服务器配置、开发工具、后端和前端技术栈、软件架构方法等多个方面。
🐿️项目&资源
1、DeepSeek-R1:媲美 OpenAI-o1 的开源模型
DeepSeek 推出的第一代推理模型,在数学、代码和推理任务上的表现与 OpenAI-o1 相当。完全开源,另外还包含 6 个基于 Llama 和 Qwen 蒸馏的模型。(star 2.4K)

2、wiseflow:从网站/公众号/RSS等提取简洁的信息
一个敏捷的信息挖掘工具,利用大模型的思考和分析能力从各类信息源中精准抓取特定信息,自动分类后上传至数据库。目前已支持网站、RSS、搜索引擎和公众号 4 种信息源。(star 5.7K)
一个不设置目标的支持自托管的习惯跟踪应用。
4、django-templated-email-md:用 Markdown 格式生成电子邮件
用 Markdown 语法写邮件模板,自动转换为 HTML 并生成邮件,通过 Premailer 工具将 CSS 样式内联,无缝集成 django-templated-email。
一个 TUI 应用,简化 systemd 管理,提供模糊搜索、自动刷新预览、智能 sudo 处理,以及为高级用户和新手提供完全可定制的面板。
6、ccrl_challenger_flask_app:Flask 开发的国际象棋对战网站
用 Python Flask 开发的游戏网站,支持与 CCRL(计算机象棋评级列表)的 118 种象棋引擎对弈。
极简的 Python Web 框架,提供了路由、会话管理、WSGI 支持以及 Jinja2 模板渲染等功能。
8、zasper:高效运行 Jupyter Notebook 的 IDE
专为支持大规模并发而设计的 IDE,具有极低的内存占用、出色的运行速度,并能高效处理大量并发连接。已支持 MacOS 和 Linux 系统,待支持 Windows。(star 1.7K)

以视觉大模型驱动的 GUI 代理,能够以类似人类的感知、推理和行动能力与图形用户界面无缝交互,实现端到端的任务自动化,无需预定义的工作流或手动规则。(star 1.2K)
10、WebWalker:用网页导航任务中对 LLM 作基准测试
阿里巴巴开源的 LLM 基准测试任务,包含四个真实场景的 680 个查询,覆盖超过 1373 个网页。
一个开源框架,支持开发从简单的 LLM 调用到复杂的组合工作流和自主代理,支持单代理和多智能体协同,支持模型上下文协议(MCP)。
一个专门介绍 Python 数据可视化工具的网站,收录了各类开源可视化工具,以及如何使用这些工具的教程、使用可视化工具研究特定领域问题的示例。
🐧 往年回顾
Python 潮流周刊#37:Python “令人失望”的动态类型超能力(2024.01.27)
88 Python 第一个稳定版本是怎样的?
博客原文 | 发布时间:2025-02-08
🦄文章&教程
今年 1 月 27 日,Python 迎来了 31 岁生日。当初它发布第一个稳定版本时是什么样的呢?文章使用 Podman 容器技术,成功编译并运行了 Python 1.0.1,展示了 Python 1.0 的功能、特点和早期缺失的重要特性。
可视化项目的依赖图可有助于理解项目结构、识别循环依赖和不良设计。文章介绍了如何用 Tach 工具来可视化 Python 项目的依赖关系图,内容包括定义模块边界、同步依赖关系和查看依赖图等。
io.BytesIO 是 Python 用于在内存中处理字节数据的类,支持类文件对象的读写操作。
作者指出了它的 read() 方法会增加内存占用,对比介绍了两种可优化内存占用的方法:BytesIO.getbuffer() 和 BytesIO.getvalue()。
作者开发了一个单文件版 Django 框架 nanodjango,文章介绍了它是如何通过“猴子补丁”技术实现的,介绍了如何巧妙地修改 Django 库的核心机制,使其简化为单文件形式。
JIT 装饰器模式将函数动态编译为优化后的机器代码,利用 LLVM 等工具作编译和执行,文章展示了三种实现策略:基于 AST 的 JIT、基于字节码的 JIT 和基于追踪的 JIT,解释了它们的实现原理和具体案例(Triton、Numba、JAX)。
持久化执行是指将代码的执行状态(如变量值、函数调用的结果等)持久化存储,以便在程序重启或中断后能够恢复执行。文章介绍了修改 AST 对函数调用作拦截处理,在不改变原代码逻辑的情况下,支持持久化执行。
在 Windows 上打包和分发 Python 应用并不方便,pyinstaller 和 py2exe 等方式不一定合适。文章提出了一种灵活的解决方案,类似于虚拟环境,且可在机器间传输,无需额外工具,与依赖路径无关。
切换语言等于切换思维模式——而不仅仅是语法。文章给 R 语言用户分享了 Python 社区的优秀工具,包括 IDE、环境管理、数据分析、表格制作等方面。
9、Python + LibreTranslate 实现语言翻译
LibreTranslate 是一个基于 Argos Translate 的轻量级 API 服务,支持文本检测和翻译。文章介绍了它的服务部署和 Python 调用实现,以及如何做大模型管理和性能优化。
这是关于 Python 自由线程的系列文章,内容包括如何安装、运行禁用 GIL 的 Python、移植 Python 包以支持自由线程、设置 CI、测试与调试等内容。
有不少可用于开发游戏的 Python 库,文章对它们做了一份清单和优缺点对比,包括 Pygame、Pyglet、Arcade、Panda3D、Ursina、Cocos2d。
不同的任务队列及任务调度工具的优缺点是什么,Django 项目中有哪些选择?作者提出了 django-mailer 和 django-apscheduler 的不足,给出了四种解决方案:django-tasks、django-q2、cron 和 celery,提供了代码示例和参考配置。
🐿️项目&资源
Huggingface 官方推出的 DeepSeek-R1 的开源实现,目标是补全 DeepSeek-R1 开源缺失部分,让每个人都可以复制和复现。(star 17.2K)
这个模型的中文是“乐”,专用于生成音乐,基于歌词生成完整歌曲,包含主唱和伴奏。能够模拟多种流派/语言/演唱技巧。(star 3.1K)
3、kreuzberg:提取 PDF、图片、office 文档
一个文本内容提取库,支持 PDF、图片和 Office 类文档,支持 Python 异步和类型提示。
DeepSeek 开源的多模态大模型系列,最新发布的 Janus-Pro 不仅能文生图,还可以图像识别,7B 版本在测试中超过了 DALL-E 3 和 Stable Diffusion。(star 15.1K)

支持 QQ、QQ频道、Telegram、微信平台(Gewechat, 企业微信)、内置 Web Chat,OpenAI GPT、DeepSeek、Ollama、Llama、GLM、Gemini、OneAPI、LLMTuner,支持 LLM Agent 插件开发,可视化面板。一键部署。支持 Dify 工作流、代码执行器、Whisper 语音转文字。(star 2.3K)
6、cosmicpython-book:《Cosmic Python》的中文翻译
群友@fushall 在过年期间翻译了开源的《Cosmic Python》,一本用 Pythonic 的架构模式来管理复杂性的书。
7、orange-intelligence:Apple Intelligence 的开源替代
苹果智能(Apple Intelligence)是封闭且不灵活的,这个“橙子智能”项目支持定制,利用 OpenAI 或本地 LLaMA 等大模型,让 MacOS 应用可无缝捕获、处理和替换文本。
8、django-webflix:用 Django 开发的 Netflix 风格流媒体平台
Python Django 开发的类 Netflix 流媒体平台,提供基于订阅的电影和电视剧播放。用户可以浏览内容、管理观看列表、跟踪观看历史,并通过 Stripe 订阅访问高级内容。
这是一个多代理协作系统,用于在 3D 空间里端到端的电影自动化,包含导演、编剧、演员和摄影师等角色。
10、leviathan:用 Zig 开发的用于 asyncio 的事件循环
用 Zig 开发的性能超快的事件循环库,完全兼容 asyncio,专注于最大化性能和最小化延迟。
简单的 URL 到截图服务,支持自托管,运行在 Docker 中,支持滚动页面并作区域截图,自动处理 302 重定向,可正确处理下载链接和 API 请求。
一个 CLI 工具,实现视频字幕的自动化转录、翻译和嵌入,支持并发处理多个视频,实时进度跟踪,有丰富的控制台界面。
🥂讨论&问题
终于要来了!功能强大的 Ruff 准备再次用 Rust 给 Python 带来性能惊喜!
🐧 往年回顾
Python 潮流周刊#38:Django + Next.js 构建全栈项目 (2024.02.03)
89 Python 3.14 的新型解释器!
博客原文 | 发布时间:2025-02-16
🦄文章&教程
Python 3.14.0 已发布 alpha5 版本,它的最大亮点是合入了一种新的基于尾递归调用的解释器,代码性能最高提升达 30%,平均优化速度 9%-15% !(附:代码合入请求 gh-128563:新的尾递归调用解释器)
如何将 Rust 的高性能与 Python 的灵活性结合,开发出高效又安全的应用?文章介绍了 PyO3 框架和 Maturin 工具,通过示例演示了将 Rust 与 Python 结合的指南。
关于 Python uv 的实用教程,演示了如何用 uv 开发一个 CLI 应用,并实现依赖的安装管理。
在 2017 年 PEP-517 之前,setuptools 具有垄断地位,如今其它构建工具也开始普及。文章基于 PyPI 上下载量最高的 8000 个项目,分析了不同构建工具的流行度和发展趋势。
5、用 Javonet 将 Python 的 folium 集成到 Node.js 中
Python 的 folium 是一个交互式地图库,可与 geopandas 等库集成作地理空间分析。文章介绍了如何将这个库集成到 Node.js 项目中,发挥两种编程语言生态的优势。
Django 官方发布了与 MongoDB 集成的工具,支持 Django 模型、表单、验证和认证,兼容 Django 管理界面,并支持迁移和数据库版本管理。
有哪些国家广泛使用 Django 来开发政府网站的?作者从 2000 万个网站中提取出 1000 个政府网站,涵盖 88 个国家,列出了使用 Django 开发政府网站最多的 10 个国家,以及分享了一些代表性的国家政府网站。(为什么中国的数据是 0 个?)
作者将继承分为三种类型:代码共享(有害)、接口实现(可选但有用)、特化(必要),并分析了每种类型的优缺点。一般而言“组合优于继承”,但有时合理使用继承,也能写成更好的代码。
如何在不使用 async/await 的情况下实现并发执行?文章介绍了用生成器的 yield 机制模拟异步操作,通过手动切换任务实现类似协程的效果。
这则 PEP 提议成立一个 Python Packaging Council(打包委员会),来管理和指导 Python 打包标准、工具和实现。文档包含委员会职能、成员数量和产生方式、利益冲突处理等内容,旨在为 Python 打包生态提供清晰的治理框架。
文章深入介绍正则表达式,通过 Python 的 re 模块,介绍从基础到高级的实用代码示例,以及一些优化正则表达式性能的技巧。
作者分享了 7 篇对现代计算机科学产生了深远影响的论文:图灵的“可计算数”、香农的“通信的数学理论”、Codd 的“关系模型”、Cook 的“定理证明复杂性”、Cerf 和 Kahn 的“网络互联协议”、Berners-Lee 的“信息管理提案”以及 Brin 和 Page 的“大规模超文本搜索引擎”。
🐿️项目&资源
1、soupsieve:BeautifulSoup 的现代 CSS 选择器
一个用于与 Beautiful Soup 4 一起使用的 CSS 选择器库,旨在提供使用现代 CSS 选择器的选择、匹配和过滤功能。
一站式的数据应用开发与管理平台,覆盖数据摄取、ETL 和可视化的端到端流程,快速连接 CSV、JSON、Parquet 或 SQL 数据库。(star 1.3K)
用自然语言告诉 LLM 如何排序,然后交给大模型完成排序。
4、fastapi-guard:为 FastAPI 提供 IP 控制、请求记录和渗透检测
一个 FastAPI 的网络安全中间件,防护各种安全威胁。
基于 PyQt6 和 QtWebEngine 开发,使用 Python + HTML/CSS 开发 GUI 应用。
为扫描版 PDF 文件添加 OCR 文本层,使其可搜索或复制粘贴,保留原始嵌入图像的精确分辨率。使用 Tesseract OCR 引擎识别超过 100 种语言。(star 18K)
7、python-repo-template: 基于 Just 和 UV 的 Python 模板
一个 Python 项目模板,核心组件包含 uv、Ruff、Mypy、Pytest、Loguru、Docker 和 Github Actions。使用 Just 而不是 Make 作命令执行。
使用一种名为 Rainbow 的新型数据结构实现的排序算法,时间复杂度为 O(n log n),比 Python 默认的 sorted() 更快。
9、docullim:用 llm 自动生成 Python 代码文档
在需要生成文档的函数和类上使用简单装饰器,让 LLM 帮你自动生成项目文档。
10、VideoCaptioner:基于 LLM 的智能字幕助手
基于大模型的视频字幕处理助手,支持语音识别、字幕断句、优化、翻译全流程处理。支持网络调用和本地离线模式,支持 VAD 、 人声分离、 字级时间戳、批量字幕等实用功能。(star 4.4K)
11、pgassistant:帮助分析和优化 PostgreSQL 性能
提供了对 PG 数据库行为的分析,识别关于模式的问题,并可纠正它们。提供用户友好的界面、用 Sqlfluff 作 SQL 格式化、OpenAI 助手、支持本地 LLM 等功能。(star 1K)
12、content-types:将文件扩展名映射到 MIME 类型
基于文件扩展名查找其 MIME 类型,比 mimetypes 库更全、更准确,不会访问和解析文件。
🥂讨论&问题
1、一种新的解释器被合入 Python 3.14,性能大幅提升
Reddit 上关于 Python 新解释器的帖子,发帖人是该特性作者。
2、Python 3.14 采用新型解释器,速度提高-3%~30%
V2EX 上关于 Python 3.14 新型解释器性能提升的讨论。
🐧 往年回顾
Python 潮流周刊#39:Rust 开发的性能超快的打包工具(2024.02.24)
90 uv 一周岁了,优缺点分析
博客原文 | 发布时间:2025-02-23
🦄文章&教程
最近最振奋人心的消息就是 Python 3.14 的新型解释器,它所使用的技术来自这篇文章的作者。文章回顾了尾调用优化技术提出四年来,在多个项目中的应用情况,除了 Python 3.14,还有 LuaJIT Remake、GCC 和 Clang 的支持,以及正在推动纳入 C 标准提案的情况。
uv 推出一周年了,流行势头跟 Ruff 一样强劲!这篇长文详细分析了 uv 的优点和缺点,什么时候该用它,什么时候不该用。总体来看优点远大于缺点,结论很明显了,是时候迁移到 uv 了!
出自 MongoDB 官方博客,介绍了它们为 Django 框架开发 NoSQL 数据库后端的历程,包括从调查数据中发现需求、以开源项目为基础开发数据库后端,以及支持 MongoDB 特性的实现。
4、PyPI 已支持 iOS 和 Android,用于 Python 移动端开发
一个好消息,Python 通过 PEP-730 和 PEP-738,现在支持为 iOS 和 Android 平台分发二进制包了(即 wheel),PyPI 此举将降低 Python 移动端开发的门槛。
5、开发 Python 编译器和解释器系列:实现 elif 和 else
“开发 Python 编译器和解释器”系列的第十篇文章,实现对条件语句 elif 和 else 的支持,展示了如何在编译器中添加复杂的控制流语句。
介绍了如何用 Python 和 SVG 图像开发一副完整的扑克牌,支持动态生成扑克牌、排序、显示牌面、洗牌发牌,展示了数据处理、文件操作和可视化的运用。
如何实现一个简化版的 LLaMA3 模型?文章利用了 JAX 的纯函数以及 JIT 和 vmap 等特性,实现 LLaMA3 模型的所有核心组件,适合用于学习 Transformer 架构和 JAX 的使用。
Python any() 函数的参数分别为生成器表达式和列表时,它的性能是哪个更快呢?作者经过测试,发现当序列中第一个 True 值出现较早时,生成器表达式性能更优;而当需要检查整个序列时,列表的性能可能更好。
探讨了如何在不依赖移动应用的情况下,通过 Django 框架,利用 Web Push Notifications 和 Progressive Web Apps (PWA) 技术实现异步推送通知。
10、用“# coding:”技巧来魔改 Python 语法
介绍了如何通过 Python 的 # coding: 指令和 codecs 模块,自定义代码的解码方式,从而改变 Python 的语法。文章实现了一个解码器,可将花括号语法转换为 Python 的缩进语法。
文章对比了 Java、Go 和 Python 中继承和子类型化的实现方式,探讨了语言设计对继承机制的影响:Java 是显式继承和子类型化,Go 通过鸭子类型实现隐式继承,而 Python 则结合了显式继承和通过协议实现的静态鸭子类型。
12、当 Python 遇见 WebGL:用 PyScript 打造浏览器 3D 创作工具
作者参加了 Genuary 活动,在 1 月每天生成一副视觉艺术作品,在这一挑战中,他深入探索了 PyScript 和 WebGL 在创意编程中的应用,讨论了 Pyodide 和 MicroPython 在浏览器中的性能和限制。文章里还分享了一些效果惊艳的 3D 创意作品。
🐿️项目&资源
1、pyquery:类似 jQuery 的 Python 库
它能让你在 XML 文档上执行 jQuery 查询,使用 lxml 作快速的 XML 和 HTML 操作。(star 2.3K)
2、Youtube-playlist-to-formatted-text:提取 YouTube 列表字幕并制成电子书
自动从 YouTube 播放列表提取字幕,使用 Gemini 作文本精炼,输出到格式化的 Markdown 文件中。
3、podcastfy:NotebookLM 播客功能的开源替代
使用生成式 AI 将多模态内容转化为引人入胜的多语言语音对话,是谷歌 NotebookLM 的替代。(star 3.2K)
4、harbor:一键运行 LLM 后端、API、前端和服务
一个容器化 LLM 工具包,允许你运行 LLM 和其他服务。包括一个 CLI 和一个配套应用,可轻松管理和运行 AI 服务。(star 1.3K)
一个分析 NGINX 配置的工具,可防止安全配置错误并自动化检测缺陷。
Python + Vue.js 开发的仪表板项目,它与各种数据源无缝集成,包括数据库、API 和业务系统,从而实现有效的数据分析。
微软开源,可将用户界面的截图解析成结构化和易于理解的元素,增强 GPT-4V 准确定位和生成动作的能力。(star 15.8K)
8、Tamga:多种格式和彩色打印的 Python 日志工具
一个现代的 Python 日志工具,支持多种输出格式和彩色控制台输出。使用 Tailwind CSS 颜色调色板,集成 MongoDB,支持文件轮转和邮件通知。
9、frames_of_mind:将 R1 的思考过程动画化
将思维链保存成文本,然后用 OpenAI API 转换为嵌入,最后用 t-SNE 将嵌入绘制出来。
一个包含预定义 Pydantic 模式的综合仓库,可从非结构化视觉内容(如图像、视频和文档)中提取结构化数据。借助 Pydantic 实现自动数据验证和类型安全。
利用大语言模型从文档中提取和分类结构化数据,功能类似于 ORM,可实现无缝的文档处理工作流。(star 1.1K)
过 Neo4j 数据库驱动的直观图形视图,可视化基础设施资产间的关系,揭示隐藏的依赖关系,降低安全风险。(star 3.2K)

🐧 往年回顾
Python 潮流周刊#40:白宫建议使用 Python 等内存安全的语言 (2024.03.02)
后记
Python潮流周刊由Python猫 出品,主理人是豌豆花下猫。
我们在很多平台上都有账号,以下是最主要的阵地,欢迎你前来互动~~
1、公众号:除更新周刊外,还发布其它原创作品,并转载一些优质文章。(可加好友,可加读者交流群)
2、小报童:本周刊最主要的付费订阅平台。
3、博客:我的独立博客,上面有历年原创/翻译的技术文章,以及从2009年以来的一些随笔。
4、Twitter:发布一些即时内容,欢迎与我建立社交联系。我的关注列表里有大量Python相关的开发者与组织的账号。
5、Telegram:除了发布周刊的通知外,我将它视为一个“副刊”,补充发布更加丰富的资讯。
6、Github:你可以获取本周刊的Markdown源文件,做任何想做的事!
其它附录:
1、技术周刊的转变:如何平衡热爱与现实? 聊聊周刊为什么推出付费专栏,以及今后的发展计划
2、周刊是聪明人筛选优质知识的聪明手段! 周刊希望能打破信息差,做你高质量的信息筛选器
3、Python潮流周刊的数据统计看板 包含柱状图、饼图和词云等维度的数据分析