一个简单的、风格类似requests
的 HTTP 客户端,构建在 Twisted 之上。
自动抓取、汇总并按指定规则分类整理影片文件,创建供 Emby、Jellyfin、Kodi 等软件使用的元数据文件。(star 1.6K)
可用简单的 HTTP 请求访问受 Cloudflare 保护的页面,是唯一为认证代理提供 SSL 支持的爬虫框架,仅一行代码即可集成任何 Chrome 插件,支持 sitemap、支持数据清理、支持缓存、提供了 Selenium 快捷方式,等等。
一个围绕 WebView 组件的轻量级跨平台包装器,在 GUI 窗口中显示 HTML 内容。可与 Web 框架一起使用,也可单独打通 Python 与 DOM。最新发布的 5.0 版本,开始支持 Andriod。(star 4.2K)
它可让你直接在白纸上练习弹钢琴!目前最多支持两个手指,主要为买不起钢琴的人提供练习。
43 在开源与家庭之间,他选择了家庭
🦄文章&教程
作者开源了PyOxidizer
和python-build-standalone
等多个 Python 项目,但因为编程语言兴趣已转向 Rust,以及身份成为了丈夫&父亲,时间精力不足,因此选择回归家庭,要给这些开源项目寻求新的维护者了。
家里的电脑处于休眠模式,如何从其它地方远程唤醒它?作者用树莓派单板计算机 + Python 开发的简单网页 + systemd 服务,通过给电脑的网络控制器发送数据包,实现了机器的远程唤醒。
相比静态类型语言,Python 要消耗大量内存。文章探讨了 Python 的内存模型:对象是如何分配的、对象存储在什么地方、最终如何清理对象?介绍了如何使用简单的技巧,显著改善内存的使用。
正则表达式中“$”符号会匹配到什么内容呢?Python re.MULTILINE
多行模式对字符串匹配的影响?是否不同的编程语言的表现都一样呢?什么时候应该用“\z”和“\Z”?
双下方法即以双下划线开头和结尾的特殊方法,例如__init__()
,Python 语言中共有 150 多个特殊的双下方法,文章对它们多了分类介绍,并梳理了明细清单。
Python 有丰富的库可支持国际化和本地化,文章介绍如何用gettext
库实现语言国际化以及如何管理本地化资源。
Qwen 是阿里推出的大语言模型,作者用 Win10 系统搭建了一个基于 Qwen 的 AI 问答助手。内容包括安装环境、下载模型、使用transformers
实现模型对话功能。
“如果你不知道编译器是如何工作的,那你就不知道计算机是如何工作的。“作者通过用 Python 开发一个 Lisp 解释器,详细介绍了 Scheme 的语法,深入探讨解释器/计算机的工作原理。
正确地解析 URL 要比想象得难,它自 1994 年提出以来已发生巨大变化。Python 标准库urllib
并不遵循任何 URL 规范,文章介绍了两个符合 WHATWG 规范的解析库ada-python
和can_ada
,后者比前者快 2 倍,前者比urllib.parse
快 2 倍。
鸭子类型的核心思想是“如果它走起来像鸭子,叫起来像鸭子,那么它就是鸭子”。由对象的行为决定类型,而非是一成不变。这篇长文对鸭子类型作了非常详细的介绍,它是什么、如何使用、有什么优缺点、使用哪些方案来弥补鸭子类型的缺点,等等。
介绍了 PostgreSQL 服务端与客户端通信的流程,使用 Python 实现一个最小化的服务端。
作者在去年开发了两个 Python 框架,文章分享了他在开发框架时学到的东西。部分建议有:定义你的反目标、了解已存在的东西、首先考虑你的界面、在没准备好时就使用、1 个样本是不够的、重视文档,等等。
🐿️项目&资源
本周最最火爆的项目当属马斯克差点跳票的 Grok 大语言模型了,有非常惊人的 314B 参数,8 个专家的混合体,最长上下文 8192 token。(star 43K)
基于 GPT-4 的开源情报助手,从付费的 DeHashed 高效地搜集和分析信息,对网络安全和数据泄露调查有所帮助。
一个 Python 日志库,强调结构化和类型安全的日志记录,兼容 logging
标准库,支持输出 JSON、logfmt 和漂亮的控制台日志。(star 3.1K)
Python Debug 工具,与 Linux 中调试 core dump 文件一样,支持在异常发生时/程序任意位置保留当前调用栈帧,然后通过 pdb 进行调试。支持全局 hook,支持服务器远程调试。(投稿自@cocolato)
符合 WHATWG 规范的 URL 解析器,也用在了 Node.js 等项目中。比标准库 urllib 快 4 倍。
一个验证概念的项目,可作为模板,用于构建和自定义自己的 CRM 解决方案,重点是易于集成和可扩展性。
一个 PyTorch 工具包,专为快速简便地创建先进的语音和文本处理技术而设计,可加速对话式 AI (即语音助手、聊天机器人和大语言模型)开发。(star 7.7K)
提供了非常简单和统一的 API 来处理各种格式的配置文件,支持格式有 JSON、ini、Pickle、XML、Java properties、YAML、TOML,等等。
专注于 Llama 模型在中文方面的优化和上层建设的高级技术社区,定期组织线上活动、技术研讨和经验分享,促进成员间的创新交流。(star 9K)
可将 Python 应用打包成在 Android 设备上运行的二进制文件(APK、AAB 和 AAR),支持多种 CPU 架构,支持大多数纯 Python 包和一些流行的依赖于 C 代码的包(如 numpy、sqlalchemy)。(star 8K)
基于素描快速生成图片、夜晚图片转换为白天(或相反)、晴天图片转换为雨天,等等。
使用类似于 React 的组件构建 HTML 页面,旨在与 htmx.org 一起使用,几乎不需写任何 JavaScript。后端基于 Starlette 框架。
🐢播客&视频
CPython 主线分支已合入了可禁用 GIL 的开关,这则视频带大家体验一下没有 GIL 的 Python 会有什么样的表现。
ruff 和 uv 出自同一个团队,给 Python 的基础工具链带来了非常有前景的影响。这期播客对话了 Charlie Marsh。(附:另一则相似话题的播客
uv - Python 包的下一次演变?)
44 Mojo 本周开源了;AI 学会生成音乐了
🦄文章&教程
讨论了编程语言在规模扩大时面临的风格多样性问题,提出了“语言风格沙皇”(Style Czar)的概念。作者提到 Scala 过于灵活、C++ 新旧标准共存、Python PEP-8 没有与时俱进,呼吁社区应该有人(例如语言创造者)引导社区发展出统一的风格标准。
介绍了“Everywhere Computer”,旨在将计算任务分布到一个广泛的开放网络上,包括个人设备、局域网中的其他设备、云节点集群等。介绍了如何使用 Rust、JavaScript 和 Python 编写具体的函数,并将它们编译为 Wasm 组件。
Reflex 是一个纯 Python 全栈 Web 框架(Github 15K star),其作者介绍了 Reflex 的架构,包括前后端的实现细节和工作原理。
作者用将近一年时间定位 PyPy 中一个奇怪且难以复现的 BUG,文章介绍了他采用的各种定位方法、这个 BUG 出现的原因、以及在调试时发现的其它问题。目前修复已合入 PyPy 主分支。
如何在 Python 项目中运行 JavaScript?PyMiniRacer 是一种方法,但旧项目年久失修,作者接手了它,做了很多的更新,文章介绍了新版本的变更项以及未来的计划。
文章介绍了如何实现两种语言的相互调用,实现数据跨语言项目的传递。Python 调用 JavaScript 用了 pyjsparser 和 PyV8,反向用了 node-python、WebSockets 和 HTTP 请求。
介绍了一种使用文件而非内存的缓存方案,类似于lru_cache
,它提供了file_cache
装饰器,主要优点是能持久化缓存结果。文章详细介绍了实现的代码。
介绍了一个可加速 Django 框架中 collectstatic
命令的执行速度的工具,包括如何安装和配置、如何将其集成到 Django 项目中以提高性能。还提供了一些性能提升的指标和最佳实践建议。
分布式协程是可以挂起、序列化并在另一个进程中恢复的函数,与分布式调度器(如 Dispatch)结合使用,可简化软件的创建过程。Python 原生支持协程,但协程本身不能被序列化,文章介绍了如何解决这个问题,以及如何处理无法序列化的文件和网络句柄、如何处理大型对象以及如何处理全局对象和代码更新等问题。
如果基于 NumPy 的代码太慢,有时可用 Numba 来加速。但由于它的类型注解和编译选项,错误使用将导致性能变慢,文章分析了相关问题,并给出了优化的建议。
Django 的 system check framework 是一种内置机制,可在运行 Django 命令时自动检查和报告潜在的配置及应用状态问题。作者通过性能分析和代码审查,发现并实现了多项优化措施,提升了示例约 50% 的运行速度。所做优化将在 Django 5.1 版本发布。
文章通过数据分析的方法(蒙特卡洛方法)模拟抛硬币、轮盘、大乐透等玩法,结果发现输的概率非常大,这告诉了我们一个道理就是……
🐿️项目&资源
Mojo 是一种新的编程语言,试图将 Python 的语法及生态与系统编程及元编程相结合,弥补研究与生产之间的差距。(star 18.5K)
目前支持生成歌曲、歌词等。自带维护 token 与保活功能,无需担心 token 过期问题。(附:另一个
suno 逆向工程 API)
一个命令行工具,支持在 Markdown、reStructuredText 和 LaTex 文件中用black
格式化 Python 代码块。(投稿自@Chao)
一个用于处理文件名和文件路径字符串的实用工具,支持删除无效字符、替换平台保留字、删除不可打印字符、参数校验、多字节字符、支持多平台,等等。(投稿自@Chao)
除题目所述,它还用到以下技术栈:Nginx、RabbitMQ、Redis、MySQL 和 Docker 等,支持登录、项目管理、接口管理、用例管理、流量录制、配置管理、定时任务、报告管理等功能。
一个简单、快速、轻量级的 Python 测试调试器,支持跟踪代码的执行,并允许用基于 LLM 自然语言的调试器追溯检查程序的状态。
以面向开发者的方式创建播客,不需要任何昂贵的设备。它从用户处获取输入,以此生成脚本和基于该脚本的音频文件。依赖FFMPEG
和 llmOS
。
只需提供一个视频主题或关键词,就可全自动生成视频文案、视频素材、视频字幕、视频背景音乐,然后合成一个高清的短视频。支持 OpenAI、moonshot、Azure、gpt4free、one-api、通义千问 等多种模型。(star 5.5K)
将大语言模型嵌入到操作系统中,使操作系统“有灵魂”。旨在优化资源分配,促进跨代理的上下文切换,实现代理的并发执行,为代理提供工具服务,维护代理的访问控制。
提供了一个将自然语言查询转换为 Selenium 代码的引擎,使用户或其它 AI 能够轻松自动化、轻松描述 Web 工作流程并在浏览器上实现自动化。(star 3.5K)
超轻量级个人博客模板,完全基于Github Pages
、 Github Issues
和 Github Actions
。不需本地部署,从搭建到写作,只需要 18 秒,2 步搭建好博客,第 3 步就是写作。
一个开源的产品分析工具,支持自托管。旨在为企业提供一个可控制、可定制且符合数据隐私要求的分析解决方案。有免费的 cloud 版本。(star 16.5K)
最近大火的 Devin 的开源替代品,可理解高级人类指令并分解为步骤,研究相关信息,并编写代码以实现给定的目标。它利用大语言模型、规划和推理算法以及 Web 浏览能力来智能开发软件。(star 13K)
45 越来越多的 AI 自动开发框架
🦄文章&教程
微软总部发布的研究论文,介绍了 AutoDev 框架,它使 AI 代理能够自主地编写代码、测试、构建和操作 Git 等,使用 Docker 确保开发环境的安全,并可通过配置来限制 AI 代理的权限和操作。在 HumanEval 数据集上取得了 91.5% 的代码生成准确率和 87.8% 的测试生成准确率。
FastAPI 越来越流行,但是作者还坚持用 Django,文章简短介绍了 10 个原因。
ASGI 是异步服务器网关接口规范,允许异步服务器与 Web 应用框架进行通信。文章介绍了几种流行的 ASGI 服务器(Daphne、Uvicorn、Hypercorn 及 Granian),比较了它们的性能和特性,同时给出了如何选择合适的 ASGI 服务器的建议。
JSON 有两个主要的标准定义(Ecma-404 和 RFC-8259),然而现实的各种编程语言和 JSON 库在处理数字的精度和范围时,却存在诸多差异。文章对此作了一些对比和总结。
Python 的列表支持乘法操作,如[[]]*4
,将得到[[],[],[],[]]
,但是,这个例子中复制出的 4 个列表只是对同一个对象的引用。文章深入解析 CPython 源码,介绍了列表对象的结构及其内部对象存储机制、星号运算符的实现原理、CPython 具体如何执行列表的乘法操作。
Celery 是 Python 中常用的分布式任务队列库,这个系列文章已更新 9 篇,深入介绍它的基础架构、Worker 启动、重要组件、生命周期、定时任务等等内容。
作者介绍了自己最新在用的技术栈:用mise
作 Python 版本和虚拟环境管理、poetry
或 uv
作依赖管理、 ruff
作格式化和 linting,以及 pydantic
作运行时检查。
本周意义重大的一则消息:Cloudflare 支持用 Python 编写 Workers!此举将扩展 Cloudflare 平台的功能,将推动无服务器计算及在浏览器中运行 Python 代码。该功能目前为公测阶段,期待后续的发展。
文章提出两个基本问题:AI 代码生成工具对编程入门的新手有什么影响?新手如何在入门编程时使用 AI 代码生成工具?文章介绍了两篇论文的研究结果。
这篇教程介绍了如何用 OpenAI 的 Whisper 模型转录视频,并使用强大的 FFmpeg 工具轻松添加字幕。
文章介绍如何使用 GitHub Actions 的定时功能自动执行数据爬取任务,介绍了 GitHub Actions 的工作原理及几个使用限制。
文章介绍如何使用断点来调试和观察代码的执行过程,主要介绍了pdb
模块的 breakpoint() 方法的使用。
🐿️项目&资源
开源的 AI 软件工程师,利用了 shell、代码编辑器和 Web 浏览器等工具,充分发挥 LLMs 在软件开发中的潜力。(star 18.4K)
普林斯顿大学推出的 AI 工程师,在 SWE-bench 测试中修复了 12.29% 问题,成绩接近 Devin。(star 6.6K)
一个基于 LLM 生成前端 UI 界面的框架,并可将 HTML 转换为 React、Svelte、Web 组件等。(star 4K)
从复杂格式的非结构化数据中提取基于文档理解的深度知识,可视化的文本分块,自动化且轻松的 RAG 工作流。(star 2.4K)
中文名是“兹白”,出自山海经。相比于 gunicorn ,它的性能更好,并可在 Windows 上使用。相比于 waitress ,兹白在不使用 gevent 时单进程性能与它相当,在重载情况下比 waitress 更稳定。
可使用 GPT-4 生成关于给定主题的大约一小时的单扬声器有声读物/播客 mp3 文件。
纯 Python 实现的一个高级的二进制仿真框架,支持很多操作系统和硬件架构,支持多种文件格式,支持跨架构和平台调试,具有逆向调试功能。(star 4.8K)
用纯 Python/Jax 编写,面向 Google Cloud TPU,可实现 55% 到 60% 的模型翻牌利用率。
一个无任何依赖且支持跨平台的库,用于播放声音。支持异步模式、循环模式,主要支持.wav
格式。
基于视觉条件并行去噪的无限长度和高保真虚拟人视频生成,受 Sora 启发而开源,可配合实时高质量的唇同步模型MuseTalk
,构建完整的虚拟人生成解决方案。
建立在 LlamaIndex、Ollama 和 HF Pipelines 之上,创建 AI 代理并提供简单的 REST API 来调用。
🐢播客&视频
油管上的系列视频,介绍如何用流行的前后端技术栈克隆一个 Airbnb 网站,可作练手项目学习。
一档聚焦于 Django 框架的播客,第一期节目分享了 DjangoCon 2023 上的一些会议演讲内容,以及其它有趣的东西。
46 如何用 Python 预测日食的时间和轨迹?
🦄文章&教程
本周一(04.08)上演了今年唯一一次日全食,作者由此想到如何用编程方法预测日食发生的时间。文章分享了计算的技巧,绘制了本次日全食的轨迹,同时预测了 2020-2030 年间所有的日食。
作者全职加入 Textualize 公司,参与了流行的 Python 库 Rich 和 Textual 的开发,文章主要分享了四个方面的经验:靠网络形象获得工作机会、你的自我不应该妨碍你的工作、如何与用户及贡献者互动、如何在完全陌生的大型代码库上开发。
代码坏味道(Code Smells)本身不是错误,但是会影响代码质量和可维护性。文章介绍了5 类常见的代码坏味道,以及修复这些问题的最佳实践。
文章介绍了几种用 Python 作质因数分解的方法,从暴力解法到经典的埃拉托色尼筛法,重点介绍了后者的算法思路以及代码的优化方法。
Supervisor 是一个 C/S 架构的进程监控与管理工具,文章介绍了其基本用法和部分高级特性,用于解决部署持久化进程的稳定性问题(可克服nohup cmd &
命令的弊端)。
JIT 编译器已经合入 CPython 3.13 主分支,这个最新发起的 PEP 旨在回答关于它的一些常见问题,主要目标是明确这个 JIT 应满足什么条件才能变为非实验性的特性。
Zapier 是流行的在线自动化平台,支持数千款 APP。文章介绍了 Zapier 采用的技术架构,包括用 Django 框架作后端,用 RabbitMQ 和 Celery 来创建分布式工作流引擎,用 Kafka 作分布式事件存储和流处理,等等。
去年的一大技术新闻是扎克伯格的 Meta 推出 Threads 与马斯克的 Twitter 竞争。Theads 的技术栈与 Instagram 几乎相同,大型单体架构,Django 框架改造的后端,数据存储在 TAO,用 ZippyDB 作缓存。
Python 以其可读性和简单性而闻名,它有一些关于命名的规范,有助于保持代码一致性和清晰度。文章通过示例介绍了 Python 正确的命名风格,并给出了反例。(附:Google 内部专注于代码质量的“Code Health”系列,
最新一篇分享了几条命名原则,有 Python 之禅的味道)
文章回顾了表格的历史(从古代的方格到高度结构化的数据格式),提出表格在当今面临的问题,介绍了如何通过Great Tables
库创建更美观好用的表格。
若将列表作为字典的键,会报错TypeError
,这是为什么呢?在这个过程中,Python 内部是如何执行的呢?文章解答了这个问题,原因跟__hash__()
魔术方法有关。
作者基于 Raspberry Pi 1b 和 DS18B20 温度探头开发了一个温度监测器,使用 Python 将温度数据传给 Influxdb,实现检测温度的变化。(根据文章开头描述,我推测作者现在应该只有11-12岁)
这篇文章建议在做面试编程时,将答案写成一行代码的形式,文中给出了一些例子如反转二叉树、计算二叉树深度、查找第一个回文等题目,使用各种花销的技巧将代码写成一行。但是,注意文章发布的日期,它只是一个愚人节玩笑,不要当真!
🐿️项目&资源
它可让 LLM 在本地运行代码(Python、Javascript、Shell 等)。安装后运行 $ interpreter
,即可以通过终端中类似 ChatGPT 的界面与 Open Interpreter 聊天。(star 47.1K)
无缝支持 Polars、pandas、modin 和 cuDF,使用 Polars API 的子集,使用 Polars 的表达式,100% 分支覆盖率。
一个自动扫描安全漏洞的命令行框架。输入顶级域名,它可发现相应的子域名和证书并进行侦察,然后对漏洞、机密、错误配置和网络钓鱼域名进行全面扫描。
用户提出一个问题,它将用多个引擎搜索,并将搜索结果组合给 LLM,根据搜索结果生成答案。不需要 GPU 或 OpenAI 或 Google API 密钥,即完全免费。使用免费的 ChatGPT3.5 / Qwen / Kimi / ZhipuAI(GLM) API,支持 ollama,支持 Docker 部署。(star 6.6K)
PyCharm 是最专业的 Python IDE,其官方博客经常发布技术文章,在 YouTube 上也经常发布视频。这篇文章汇聚了一些跟 Django 相关的文章和视频的学习资源。
前文分享了这个库的设计理念。它依照表格各部分而定义了一系列组件,支持灵活调整表格布局。使用 Pandas 或 Polars 的 DataFrame 数据作输入。
最近有一则爆炸性新闻是“XZ 的后门事件”。这个项目用 Python 实现了部分后门功能,你可以通过 SSH 客户端来探索它们。
它可以将 docx 文件的各项元素提取成 Python 对象,包括文本和图像,实现内容读取、插入、修改等功能。
一款运行在 Windows 上的,能备份导出朋友圈为 html 的工具,可下载图片/视频永久保存,支持根据联系人和朋友圈时间进行过滤导出。
组装和控制一条机械臂,需要多少成本?这个项目给出的方案成本约 250 美元,且支持增加一条机械臂,总计 430 美元。使用 Dynamixel XL430 和 Dynamixel XL330 伺服电机。(star 2K)
Draw.io 是一个免费在线的图表工具,可创建流程图、组织结构图、UML 图、ER 图、网络图等。这个库支持创建、添加对象、设置样式等功能。
浏览器中的数据库实体关系 (DBER) 编辑器,可构建图表、导出 sql 脚本、自定义编辑器等,无需创建帐户。(star 4.3K)
🐢播客&视频
这则视频使用 Django、websockets 和 HTMX 克隆出一个 ChatGPT。每个功能被分解为一次提交,视频解释了代码作用并演示了效果。
这个系列视频有 23 期,主要面向初学者入门数据科学,涵盖 Python 编程基础、数据分析、数据可视化、大数据、机器学习等话题。
47 当你的老师希望你去做开源
🦄文章&教程
这篇文章提出了一个尖锐的问题:有些老师建议学生去开源项目上做事,但却没给出有效的指导,导致开源项目里出现很多无效的互动。建议想参与开源贡献的同学,不要犯这些错误:不要将练习 Git 操作的内容提交 PR 到原仓、不要破坏项目原有的 linter 和格式化规范、不要签到式打招呼……
f-string 很好用,而且很强大。文章介绍了一些经常使用的场景,例如对数字的处理(整数、浮点数、科学计数法等)、百分比、日期、填充、正负号等。
如何开发一个可以录制和转录语音的笔记应用?这篇教程使用 Django+OpenAI+AlpineJS 开发了一个简单的项目。
文章介绍了可提高 Web 项目安全性的 7 类实践,包括验证输入并清洗数据、使用安全的编码工具、使用最新 Python 及库、明智处理错误和记录日志、最小权限原则、使用 HTTPS 传输、定期作安全审计。
Fedora Linux 的一项提案,希望用 “-O3” 编译器优化标志来构建 CPython 解释器和标准库,预计整体上可提升 Python 性能 1.04 倍。提案对应的版本是 Fedora 41 和 Python 3.13。
Ruff 又发布新版本啦,新的解析器速度提升 2 倍,这意味着所有 linting 和格式化的速度提升 20-40%。文章介绍了这个手写解析器相比旧解析器,带来了诸多优点。(感叹一句,Astral 团队可太会做 build in public 了!)
RSS 是个好东西,强烈建议所有人都用!个人博客的标配是提供 RSS 源,Django 框架有Syndication 可创建 RSS 源,但默认情况难以阅读,文章介绍了如何给 RSS 源加上样式。(附:我的博客也做了
RSS 预览美化)
如何快速判断一个元素是否在某个集合中?最流行的方法是布隆过滤器,但还有别的过滤器,文章介绍了最近推出的二进制熔断过滤器,速度更快,内存占用更低。介绍了pyxorfilter 库的使用,这个仓的文档中指出了两篇学术论文,感兴趣的读者可以研读一下。
Code Review(代码评审)是项目开发时的关键环节,值得关注的评审点有不少,作者分享了 3 个曾忽视的重要的小事:命名、指引性注释、以及沟通方式。文中总结的要点对提升代码可维护性和塑造团队氛围有重要作用。
作者有一个很好的出发点:各大 APP 有年度总结,我们每天用键盘,为何不给它来个工作总结?用pynput 库可监听键盘与鼠标事件,实现统计功能。文章还介绍了用tkinter 开发一个简单的查看界面。
上界版本约束(Upper Bound Version Constraints)是一种指定软件包最高可安装版本的机制。这篇万字长文主要指出了这种机制的诸多弊端、解释了语义化版本控制(SemVer)的概念及其局限性。
作者最近花了几周为自己的编程语言开发了一个代码格式化工具,文章介绍了技术实现上的一些知识点,主要是如何处理各种抽象语法树 (AST),包括文本、空格、缩进、宽度、内容渲染、注释的处理,等等。(附:作者去年写的
开发编程语言的十年)
🐿️项目&资源
用 Rust 开发的高性能静态代码分析器,比 pytype 和 pyright 快 100 倍以上。可检测列表越界和字典不存在的键,支持语言服务器的各种功能如代码补全和重命名等。(star 1.9K)
Claude 官方推出的 cookbook,一系列的资源和教程。(star 2.7K)
一个使用 Kubernetes 的工作流编排器,可定义并运行容器的 YAML 工作流。提供@flow.task() 装饰器,每个 Python 函数可作为 Kubernetes pod 运行。
用于从代码仓下载文件,方便提供给聊天机器人使用。支持根据语言筛选、可排除某些目录/文件类型和测试文件、支持删除注释和文档字符串。
知识内容密集的速查表,专注于 Python 核心内容、全面而精选。
专为斗地主设计的强化学习框架。斗地主包含合作、竞争、非完全信息、庞大的状态空间和动作空间。它提出了将深度蒙特卡洛与动作编码和并行演员相结合的方法,提供了一个简单而有效的解决方案。(star 3.9K)
支持多种仪表板的无缝集成,首选的推荐是Homepage 、Homarr 和Dashy 。(star 4K)
newspaper3k 是一个拥有 13.7K star 的项目,用于从网站中提取各种元素,能识别 10 多种文字语言。但该项目已有 3 年多没更新了,newspaper4k 是它的复刻分支,添加了许多功能,修复了不少问题。
由 marian 和 Bergamot 提供支持,在本地作翻译,提供 CLI 和 GUI 使用方式。
在运行时将 print 语句直接插入到 AST 中,可打印变量赋值和其他信息。用法简单,constable.trace 装饰器在要追踪的变量发生赋值时,将 print 语句插入到函数的 AST 中。
用于处理文本数据的 Python 库,用于深入研究常见的自然语言处理任务,如词性标记、名词短语提取、情感分析、分类等。(star 8.9K)
基于微信读书生成 RSS 订阅(支持.atom.rss.json格式),自动定时更新内容,支持全文输出,支持将订阅源导出 OPML。(star 2.7K)
🐢播客&视频
菲律宾第 9 年举办 PyCon 活动,这份演讲视频列表共有 37 个视频。
如今的 LLM 已如雨后春笋般遍地开花,个人开发者训练 LLM 的条件越来越便利。这则视频介绍了 LLM 的相关概念,以及训练 LLM 所需的知识。作者的另一则视频会动手实践,通过示例将理论运用起来。
48 Python 3.14 的发布计划
🦄文章&教程
Wasmer 是一个快速且安全的 WebAssembly 运行时,其开发团队推出了py2wasm ,让 Python 程序也可以转换为 WebAssembly,运行速度比基线解释器快 3 倍。
出自“Python Gotcha”系列,简短介绍了这三个字符串函数的意外行为,确实不符合直觉。Python 3.9 引入的removesuffix() 以及 removeprefix() 可以正确地删除左右字符串。
这是关于 IPC(进程间通信)的系列文章,介绍了基于 Unix 操作系统提供的不同机制,并用 Python 代码作演示,话题包括命名管道、Unix 域套接字、Unix 信号、消息队列、共享内存、内存映射文件等。
Python 3.13 的开发工作已接近尾声,下个月将冻结新功能合入,计划今年10月1日发布。Python 3.14 版本的开发将从 5 月 7 日正式开始,官方已公布 3.14 版本的发布时间表,预计最终版本在明年10月1日发布。(正好都是我们的国庆节!)
时间复杂度用于评估算法的性能效率,随着数据规模增大,时间复杂度越低的算法效率越高。文章介绍了 Python 各种数据结构的时间复杂度,例如列表、队列、字典、集合、计数器、堆/优先级队列、排序列表,等等。
这是一个系列文章,目前已更新 3 篇,计划从单个文件开始构建出一个完整的 Django 项目。新人接触 Django 开发时,只需两行命令就能启动一个完整的新项目,但这样缺乏对 Django 的理解。这个系列以逐步添加文件的方式,让你掌握必要的知识。
ThreadPoolExecutor 是 Python 的官方线程池实现方案,文章通过分析相关源码实现来理解线程池的架构设计,同时探讨由于使用不当导致的内存占用过高等相关问题。
我们整天跟浏览器插件和 IDE 插件打交道,那么,你是否想知道如何用 Python 设计一个插件系统呢?作者以自己开源的utt库为例,介绍了一个简单插件系统的实现。
用 Python 编程时,你通常无需关注内存如何分配与回收,都是自动处理的。但在涉及性能优化、与 C 语言交互、处理大量数据等情况下,内存管理可能是一种有效手段。文章介绍了mpmetrics 作内存管理的实现,重点讨论基于共享内存的动态变量分配。
🎁
Python潮流周刊🎁本周刊已持续连载一年,更新内容接近 10 万字。我为此投入了大量的时间和精力,为了健康可持续性的发展,周刊即将转为收费模式。周刊的发展离不开你们的资助,目前为最低优惠价,欢迎订阅
技术专栏
🐿️项目&资源
Meta 开源了最新一代的 Llama 大模型,包含 8B 和 70B 参数版本,支持 8K 长文本,性能、推理能力和代码能力都有增强。(star 17.7K)
仓库收录各种网友及厂商微调、魔改版本有趣权重 & 训练、推理、部署教程视频 & 文档。(star 1.9K)
一个任务队列库,默认为每个子任务 fork 一个子进程,但也支持同步方式;支持任务锁、任务重试、灵活排队、批处理、定时任务,等等。(star 1.4K)
通过命令行方式来添加、编辑、总结你的任务耗时,生成个人时间表和活动用时统计。
它可将视频转换为博客文章,并基于上下文添加视频截图,可方便 UP 主们二次传播自己的内容。依赖 FFmpeg 处理视频和截图,Tesseract OCR 引擎识别文本,OpenRouter 生成文章和关键字。
它可让你同时在多个浏览器实例上使用不同的账号,并根据 URL 的不同参数打开指定的浏览器。
它能从短文本或混合语言的文本中检测出所使用的自然语言,对于语言数据的预处理有较大帮助。
强大的照片相似性搜索引擎,利用 CLIP(对比语言-图像预训练)模型,根据文本描述找到视觉上相似的图像。仅适用于苹果芯片 MLX。
运行在 Windows 平台上的
Rewind 替代工具,可根据 OCR 文本或对画面的描述进行搜索,摘要浏览活动。完全运行在本地,无需联网或上传任何数据。(star 1.3K)
49 谷歌裁员 Python 团队,微软开源 MS-DOS 4.0
本周的大新闻,谷歌裁掉了 Python 语言团队,虽然人数不到 10 人,但里面有多位 Python 核心开发者及指导委员会里的成员,因此引发的讨论热度极高。Python 是谷歌早期使用最多的语言之一,但遗憾所占的比重越来越少了。
这是一份 Github 文档,收录 FastAPI Expert 给出的使用技巧,目前已有内容包括:安装 uvloop 和 httptools 、在 WebSocket 上使用 async for 而不是 while True 、忽略 WebSocketDisconnect 异常、使用HTTPX AsyncClient 代替 TestClient ,等等。
这个 PEP 已被采纳,将合入 Python 3.15 版本(你没看错,算下时间应该是两年半以后)。它建议默认启用 UTF-8 模式,当开启后,包括文件、标准IO 和 管道的文本编码将使用 UTF-8,更方便 Python 与它们的操作。
一篇长文教程,详细介绍了Pydantic 库的使用。这个库利用类型提示来帮你校验和序列化 Python 对象,使代码更可靠、更可读、更简洁,而且更易于调试。它已用 Rust 重构了核心的验证逻辑,性能非常快。
关于 Python 项目的配置文件管理和数据读写,有什么最佳实践?文章的主要思路:使用 YAML 文件记录配置类及数据类内容,抽象出专门的配置类/数据类负责读写操作。(分享自@AlterNao1)
作者发现使用requests 库发起并发 https 请求时,开启 CA 证书验证的耗时是不开启的 1~5 倍,主要耗时在于调用loadverifylocations() 。作者提交了一个 PR,通过避免重加载根证书来提高并发性能,文章分析和解读了这个问题。
Python 3.13 预览版已包含一个 JIT 编译器,目前关于它的介绍还比较少。作者打算写一系列文章深度解析 Python JIT 的内部原理,这一篇解读的是在 JIT 编译器启动前,CPython 的运行时中所发生的事情。
睡眠排序是一种有趣但不实用的排序算法,通常用于教学目的。文章介绍了它是什么、操作系统任务调度过程、以及如何用 Python asyncio 实现 sleepsort。
莱布尼茨公式在数学史上具有重要意义,是最早出现的 π 的无穷级数表达式之一。文章用 3 种语言分别实现这个公式的计算,作了语言间的性能对比,以及 Python 3.8~Python 3.12 这 5 个版本的性能对比。
Trey Hunner 是一名高产的 Python 博主,前 PSF 董事,以及各类 Python 活动的常客。文章分享了他多年来参加和组织过的 Python 会议,结识过的人,以及学到的东西。(PS. 2024 PyCon US 将在本月中旬举行)
for 循环是编程语言中极为基础的代码结构,但它在不同语言中的现状和演变过程却很多样。作者从 for 循环的基本格式、foreach/forstep 语法、对比 while 循环的表现力、for 循环的扩展(map、reduce)等方面写了一些思考。
“10x 工程师”是一种让人向往的境界,指的是那些生产力和影响力远超同行的工程师。作者认为这些人拥有 7 个很重要的习惯,包括“代码是为人写的,而不是为计算机”、“使用一致的标准”、“编写简单的代码”,等等。
Pydantic 团队推出的可观测性平台,简单而强大的仪表板,支持丰富的 Python 对象显示,事件循环遥测,Python 代码分析和数据库查询分析。
面向基础设施的自动化工具,速度很快,可从一台服务器扩展到数千台服务器。非常适合临时命令执行、服务部署、配置管理等。(star 3.2K)
可在多个相互隔离的虚拟环境中安装和使用 Python,实现了pipx 的大多数功能,因为使用uv 替代venv 和pip ,所以性能更快。
它可与 Figma API 交互,获取文件的详细信息并将其转换为代码。支持占位符文本,支持多个 frame,支持根据背景设置前景色。(附:同样功能但更成功的
Tkinter-Designer ,star 8.3K)
Python 实现的以标签方式组织的文件/照片管理系统,支持跨平台、多用户、可管理几个 TB 大小。(star 1.5K)
便携式的安全转储,利用 pdb 接口,支持 unittest、pytest 和运行时异常。
一个开源的软件开发工具,对标 JIRA、Linear 和 Asana,可安心管理问题、冲刺和产品路线图。前端是 TypeScript Next.js,后端是 Python Django,很值得作为学习的全栈项目。(star 24.1K)
将 LLM 与 Playwright 结合,它可为网站、文档和 XML 文件创建抓取管道。只需说出要抓取的内容,它会自动完成。(star 1.2K)
自动测试播放速度,每日自动更新。 有 CCTV 央视卫视频道,及部分地方频道,播放流畅。也可在 openwrt 或群辉的 docker 运行。
用于在家中测量 ISP 性能的简单有效的工具,可测量多个性能指标,如数据包丢失、延迟、抖动和 DNS 性能。
将不可信的文件(如邮件附件)转换为安全的 PDF 文件。在沙盒中处理,过程是先将文件转为 PDF,然后转换为原始像素数据,最后转换回 PDF。(star 3.2K)
微软将 MS-DOS 4.0 操作系统开源了。这个版本其实发布于 1988 年,是首次引入图形用户界面的 DOS 版本,比较有历史意义。(star 28.3K)
这是一份 Google 文档,目前已收录 864 期 Python 演讲视频,播放地址都是在 Youtube,内容主要出自 2023 年 PyCon、PyData、EuroPython 等活动。
上一则分享的视频列表中播放量最高的一期视频,后端用 FastAPI + Jinja,前端用时下流行的 HTMX + Tailwind CSS。(附:视频作者的一篇
博客 ,介绍了相关实现以及源码仓库)
50 我最喜欢的 Python 3.13 新特性!
🦄文章&教程
Python 3.13 在进入功能冻结期前,添加了一个全新的 REPL,作者表示这是 Python 3.13 中他最喜欢的特性。新的 REPL 确实让人眼前一亮:彩色提示、下一行自动缩进、tab 自动缩进 4 格、exit 和 help 不用再加括号、支持块级历史记录、支持粘贴代码块……这些新功能也是我一直想要的,现在终于要支持了。遗憾的是,它还不支持 Windows 系统!
Python 3.13 beta 1 版本已发布,改动内容真不少呢,文章做了一个简单盘点:改进的 REPL、自由线程(无 GIL Python)、JIT 编译器、python -m random 生成随机数、对 iOS 的 tier 3 级支持,等等等。(附:所有变更内容,详见官方文档
What’s New In Python 3.13)
作者用生成器、async和await关键字,逐步从零构建,成功模拟出asyncio的事件循环和任务调度机制,可加深你对asyncio内部工作原理的理解。(附:文章的
中文翻译)
这是一篇标题友好的无情吐槽文,被吐槽的是火山引擎的 TTS 接口及其 SDK 设计。作者详细分析了对方代码的问题,给出了改进建议和原则,最后还贴心给出了 62 行的改进版本,远胜原始的近 500 行的版本。
文章收集了很多 Python 文件操作的知识和代码片段,涉及基础和进阶的各类文件操作,可以查漏补缺。最后还演示了从给定目录下模糊搜索一个文件的代码。
一个用 Django + HTMX 开发 Web 小游戏(Connect Four)的简单教程。通过游戏项目来学习编程,应该是效果不错的方式。
计算器是很好的用于练习 Python GUI 编程的项目,类似的教程在网上有不少,但是像这篇那么详细介绍每一段代码的应该不多。
在入门数据科学时,哪些错误时常会发生?这篇论文对 500 多份样本作定性分析,指出了这几类错误:逻辑错误、语义错误、次优编码、对语言和环境的误解。
“Unsafe Python“是指可能导致安全风险或内存安全问题的技术。作者使用pygame 和OpenCV 来处理图像缩放任务,发现性能差距很大,原因是由numpy 数组的内存布局(strides)引起的,最后通过优化内存访问模式来提升性能。
这是在 Python Discuss 论坛上的一篇帖子,作者想梳理字典的技术细节和历史演变,但是发现字典在不同版本的插槽数、扩容机制和初始大小等方面差别很大。
marimo 是作者开发的一款 notebook 产品,是 Jupyter notebook 的竞品,已经被斯坦福大学和贝莱德等机构使用。文章介绍了其三项设计原则:可重现、可维护、多用途,为什么要采用这些设计,以及在实现的过程中学到的几点经验教训。
PSF 发布了前两年对 Python 社区的资助计划的透明度报告。我们周刊第 30 期分享过泛非 Python 社区的一封公开信,就是质疑 PSF 的资助计划。报告公布了各项支出、趋势、百分比等数据,特别分享了关于非洲早年的几起资助。
🐿️项目&资源
这是一个大动作模型(Large Action Model),使用自然语言操作 Windows 系统。目前支持所有通用的 win32api 应用。
判断某年某月某一天是不是工作日/节假日,支持 2004年 至 2024年。(附:另一个同名的项目
chinese-calendar,是个农历/阴历与阳历/公历的转换与查询工具)
支持搜索和查看 PyPI 上的软件包,支持查看 pip/pdm/rye/poetry 安装命令,支持查看每周下载量和趋势图。
使用一套统一的接口来对接不同的文本转语音(TTS)服务商,已支持 Edge-TTS、OpenAI TTS、Azure TTS、Google TTS、火杀引擎、百度 TTS、Minimax TTS。
Python Web 开发框架,基于 Starlette + htmx + tailwindcss,具有热模块替换(HMR)、基于路径函数的 URL 定位器、依赖注入等特性。
哈佛大学的 CS50 是一个计算机科学入门课程,有 11 周课时安排,免费提供所有学习资源,可颁发课程证书。今年的变化是引入了由 ChatGPT 支持的对话机器人,可帮助回答与课程相关的问题。
Portr 是一种隧道解决方案,可向互联网公开本地 http、tcp 和 websocket 连接。它利用 SSH 远程端口转发来保证隧道连接的安全性。(star 2K)
这个项目对四个流行的 Python 压缩库(zlib、LZ4、Brotli 和 Zstandard)进行对比,衡量了压缩比、压缩时间、解压时间等指标。
使用 Python 开发的 Excel,单元格中支持 Python 表达式,并且每个单元格返回的都是一个 Python 对象。可从单元格访问 Python 模块,包括 Numpy;支持导出 CSV、SVG 和 PDF 等格式。
一个极简的 Python 任务队列库,使用 PostgreSQL 的 LISTEN/NOTIFY 来管理任务作业,使用 pg 的FOR UPDATE SKIP LOCKED 实现可靠的并发处理。
除了用作图像生成和简单的问答,你还用 AI 做过什么有用的事情?这是 Reddit 的热门帖子,可以看看别人都开发过什么项目,从而找找个人项目的创意。
🐢播客&视频
Pablo Galindo 和 Łukasz Langa 开发了 Python 3.13 中新的 REPL,他们在播客中聊了开发这个特性的故事,也分享了 CPython 最近改动的一些特性,比如新的 JIT 和 Python 对 iOS 的支持等。
这期播客的嘉宾是 PyScript、pdb++、pypy、HPy 和 SPy 等开源项目的贡献者,播客聊了参与开源开发的相关话题。
51 用 Python 绘制美观的图表
这篇教程使用 streamlit + pandas + plotly 开发一个可交互的数据可视化项目,介绍了数据集的获取以及详细的开发步骤。
一篇短小精悍的文章,讲清楚了为什么不应该用 result 作为变量名。虽然是一个很小的编程规范点,但真的很常见,我自己初入职场的几年也是反面例子。
企业级 Python Web 项目开发使用 Django 框架的不少,文章分享了 35 道从初级到高级的 Django 面试题以及简短的答案。
集合的元素是可哈希的不重复的内容,这点跟字典的键很像。文章通过用没有值的字典来模拟实现集合数据结构,实现它的各种方法。预警,一点也不实用。。
PyPI 上的恶意软件包手段真高超,文章提到的库将 Sliver 二进制文件隐藏在 PNG 图片中,在操作系统安装这个包时会解码图片并执行后门代码。
TensorFlow 和 PyTorch 是两个主流的深度学习框架,分别出自谷歌和脸书,前者的流行趋势正在被后者赶超,文章分析了出现这种现象的几个原因。
延迟计算(lazy evaluation)就是在需要使用时再计算求值,即按需调用。Python 中有哪些延迟计算的例子、这种实现有什么好处、又有什么缺点?
这是“Python 3.12 源码剖析”系列的开篇,介绍了 CPython 源码的项目结构、Python 解释器的基本组成。专栏预计更新 100 多篇,目前免费已更新 5 篇。
一篇写于 2015 年的文章,作者分享了自己开发的 10 个项目,主要为 Python 和 C 语言的。第一个项目是用 C+Python 写的 Minecraft 克隆项目,Github 10K star,其它项目也都挺有意思。
大语言模型已经成为很多人必不可少的效率工具,它的智能来自哪里?文章试图用简单的术语和少量 Python 代码,不用高深的数学知识,来解释 LLM 的工作原理。
作者发现了一个常见的问题:Python 和 Ruby 等语言都有 JIT 实现,但这些编程语言中的替代实现都有一个问题,就是要艰难地跟进官方实现的新功能,要兼容新的语言规范,因此受到诸多的限制。
这个项目是一个网站的源码,网站很有意思,收录了大量的图表、制图工具、示例代码和文章教程。(star 1.8K)
一个轻量级文本转语音 (TTS) 模型,可根据给定说话者的风格(性别、音调、说话风格等)生成高质量的听起来很自然的语音。完全开源,包括数据集、预处理代码、训练代码和权重值等。(star 2.6K)
一个开源的车辆流量模拟器,绘制车辆运动轨迹,模拟交通拥堵情况。使用matplotlib 作可视化,提供了交互式 GUI。
输入一个目标图片,它会将图像切成象限,并在每个象限填充原图的平均颜色,最后呈现的效果还挺酷的。(star 1.2K)
基于 B 站评论微调的聊天机器人,支持文字聊天,也可通过 questions.txt 生成针对给定问题的语音对话。基础模型为 Qwen1.5-32B-Chat。(star 2.3K)
这个 Docker 镜像旨在支持使用 Python 实现 Github Actions。
抓取任何网站内容,将其转换为可用于 LLM 的干净的 markdown 文件。无需站点地图,会抓取所有可访问的子页面,并为每个页面生成 markdown。(star 3.1K)
使用盲文点、前景色和背景色在终端中绘图、散点图、直方图和热图,无外部依赖。
一个数据处理工具,可将 JSON、CSV、Xlsx、XML、HTML 等文件转换,写入到 MySQL、Postgres、S3 等存储中。(star 1.2K)
阿里达摩院开源的使用 LLM 作视频剪辑的工具,可基于语音识别结果,自由选择文本片段和演讲者进行剪辑。(star 1.7K)
OpenStreetMap 是一个世界性的免费地图项目,map-machine 可将地图丰富的要素通过自定义图标展示出来。
提供了两种类型的模型:文本生成照明模型和以背景图片生成照明模型。可以给普通图片加上符合场景和光源方向的光影特效。(star 3.1K)
52 Python 处理 Excel 的资源
这是一篇写于 2007 年的文章,介绍和对比了正则表达式的两种实现:传统方法和 Thompson NFA 方法。后者在某些任务上比传统方法快几百万倍,但使用普及度不及前者,作者呼吁编程语言可以改用后者。作者还写了 3 篇关于正则的文章,详见其文末。
作者不小心把本地代码删除了,然后设法中从运行中的 Docker 容器里恢复了自己的代码。使用到的库是pyrasite
和 uncompyle6
,文章介绍了具体的操作步骤。
这个 PEP 计划合入到 Python 3.13 版本,作者之一是我们国内的@高天。在早期 Python 中,所有命名空间都是用字典实现的,后来出于性能原因变更了函数命名空间的实现,但导致了一些奇怪的 BUG。此 PEP 提议将所有命名空间再次保持一致的实现。
py.space
是最近推出的一个网站,是Anvil
的精简版,可开发在 Web 上运行的 Python 应用。这篇教程演示了该网站的基本功能。
文章利用 Python 3.12 的模式匹配、typing 的泛型并结合数据类,实现函数式编程的类似功能。现在 match-case 的使用场景不多见,文章做了很好的示范。
Github 支持添加个人的自述文件,有很多开源项目可以让我们美化自己的主页。作者用 Python 实现抓取自己博客文章,利用 Github Actions 实现动态更新。我准备等有空也去试试。
pyastgrep
是作者开发的库,可使用 XPath 语法查询特定的 Python 语法元素。文章介绍如何用它作自定义的代码检查,执行其它工具无法满足的编码规范检查。
pygments
是一个可将代码或文本作高亮显示的库,作者为了在 PyCon 演讲时演示代码片段,于是用这个库生成自己的代码图片。文章介绍了具体的实现过程、优势和建议。
Llama 3 是当前开源大模型的佼佼者。文章详细介绍了这个模型的关键组件,在不依赖深度学习框架的情况下,使用纯 NumPy 实现 Llama 3 模型。
文章提出了一个暂时还无解的问题。AI 辅助编程已兴起,人类依赖 AI 完成的代码会越来越多,那么,关于这些代码的知识产权该如何判定,AI 生成部分在法律上是无版权的,由此可能会带来法律风险。
聪明的代码(clever code)很可能不是清晰的代码(clear code),建议大家不要滥用炫技式的一行流代码。代码的可读性至关重要,文章区别了好代码与坏代码,并给出了如何写出清晰代码的一些建议。
这个网站收录了一些可读写 Excel 文件的库(openpyxl、xlsxwriter、pyxlsb、pylightxl、xlrd、xlwt、xlutils)、可编写 Excel 加载项的库(PyXLL、xlwings)。
号称是最简单的 Python 环境管理工具,无需预装 Python。一半的代码是 Rust。
这个仓库收录了一些编程题目,提升 PyTorch 水平。(star 2.8K)
提供了一个IoC(控制反转)容器,可简化对象的创建和管理,避免手动传递对象或使用全局变量。
基于 Django + HTMX,可将 Python 脚本转换为交互式的 Web 应用。
让 AI 来帮忙生成测试代码,有效提升代码覆盖率。目前主要是单元测试,仅支持在终端运行。(star 2.6K)
前文已提到过这个语法高亮工具,它支持 500 多种语言和文本格式,可用于代码仓、论坛、wiki和其它需要美化源码的地方。(star 1.7K)
在数据仓库中定义和查询 BI 模型,表达式使用 Python 定义,编译为 SQL,能表达复杂的多层查询,能力超过标准 SQL。
这是 Hacker News 上的问答帖,提及的一些项目有:pymetrics、ddtrace、datadog、statsd、pyformance、prometheus 的 Python 客户端,等等。
基于tenacity
作了封装的重试库,亮点有:仅在某些异常时重试、指数退避、自动支持异步、可全局停用以作测试,以及拥有开箱即用的 Prometheus、structlog 和标准库 logging
支持。
通过 git push
命令将自己的应用部署到个人服务器上,不管服务器规模大小。支持 ARM 和 Intel 架构,适用于任何可以运行 Python、nginx 和 uwsgi 的云服务商或裸机。(star 2.6K)
根据自然语言生成为可执行的 SQL 语句,仅支持 PostgreSQL 数据库。
53 我辈楷模,一个约见诺奖得主,一个成为核心开发者
真我辈楷模啊!我们周刊的常客 @frostming 由于开发了 PDM 的缘故,被 2018 年诺奖共同得主 Paul Romer 约见。文章分享了这段让人兴奋的经历,其中提及 Paul 在做一个帮助 Python 初学者搭建开发环境的 GUI 应用,想不到他会关注这种事,瞬间引起了我对他的好感。
又一位我辈楷模!@高天 仅花一年多时间为 CPython 作贡献,现已正式成为 Python 核心开发者。全球目前活跃的核心开发者不到 100 位,能成为其中一员实属难得啊。(附:这篇
提名高天的帖子,详细总结了他为 Python 做的贡献)
文章从一个很奇怪的问题开始(见下方截图),介绍了 IEEE-754 双精度格式表示法,深入到 CPython 解释器源码解读了 Python 在比较浮点数和整数时的算法。不同于 C 和 Java 等语言隐式将整数转换为双精度,Python 具有无限精度的整数,因此设计了专用算法来实现比较。
超大整数与浮点数比较时的奇怪结果
Python 3.13 是较为独特的版本,本周刊已分享过不少内容。然而,作者最看重的特性却是新的dbm.splite3
,解决了他使用 dbm+shelve 在不同操作系统不兼容的问题。
作者在 PyCon US 2024 上发表闭幕主题演讲,分享 6 年来关于 Python 打包的一些故事。这篇文章罗列了很多与演讲话题相关的链接和参考资料。
从上一则分享的博客中发现,Beautiful Soup 已经发布 20 周年了!它常用于爬取解析和网页内容,这篇周年纪念文章回顾了一些故事,同时主要想收集更多用户故事,计划出一本选集。这么长久健康发展的项目,开发者还富有人文情怀,值得点赞。
作者曾经很喜欢 Ruby 但不喜欢 Python,后来从 TypeScript 和 Rust 上发现了类型编程的强大之处,现在被支持类型提示和 match-case 的 Python 吸粉了,同时发现它还有一些很好的特性,所以已经转向了 Python 阵营。
文章介绍了 Django 中可简单替代 Celery 和其它复杂方案的异步任务队列实现,即“Django 命令”。文章演示了相关功能的使用,以及对可能出现的问题(例如死锁)的考虑。
Streamlit 是构建仪表板的绝佳工具,但是异步操作数据源很麻烦,文章介绍了如何更好地将两者融合起来,分析了 4 种实现思路。用到Beanie
库异步操作 MongoDB。
如何用 AI 数字化大量的文件,并回答用户提出的复杂的与数据相关的问题?文章介绍了用 Python 和LangChain
来读取和分析 PDF 文档,用 SQLite 管理数据,用 LangChain SQL Agent 实现问答。
pyo3_asyncio 提供方便的接口来管理 Python 和 Rust 的 async/await 操作,支持两者间的 future 转换,并管理两种语言的事件循环。文章介绍了相关的实现原理和使用方法。
作者一直用pipx
安装 Python 依赖库,而且用的是 PyPy 解释器而不是官方的 CPython。多年来一直运行良好,没有明显差异,表明 PyPy 确实是挺成功的 CPython 替代品。
根据文件内容和时间等条件自动重命名文件,以及管理文件目录,支持多种文件包括图片和音频。拥有 Electron 开发的前端和 FastAPI 支持的后端。(star 3K)
号称是最快的 Python JSON 库,比标准库和其它三方库更准确。以本机方式序列化 dataclass、datetime、numpy 和 UUID 实例。(star 5.7K)
支持异步的 SSHv2 客户端和服务端实现,支持 SFTP 和 TCP,兼容 OpenSSH。单个 SSH 连接上同时多个会话,单个事件循环中多个 SSH 连接。(star 1.5K)
Blender 是一款功能强大的开源 3D 图形和动画软件,用于 3D 建模、渲染、动画制作和视频后期处理。这个项目将它集成到了 jupyter notebook。
尊重隐私的互联网元搜索引擎,汇总了来自 70 多种搜索服务的结果。支持自托管、无用户跟踪和分析、安全加密的连接、100 多个维护良好的实例。(star 9.7K)
Python Web 框架,无需写一行 HTML、CSS 或 JavaScript。提供丰富的 React 风格组件,声明式 UI 框架,完全的类型安全。
一个强大的书签管理器和个人文本迷你网络,也提供了 GUI 端。可从浏览器导入书签或从网络获取 URL 的标题、标签和描述。使用你喜欢的编辑器添加、撰写和更新书签。(star 6.3K)
简单的低成本个人简历生成工具,生成 PDF 格式的文件。
标准库itertools
提供了很多函数,这个项目是对它的补充,提供的函数非常之多,建议查看文档。(star 3.5K)
用 Rust 开发的 Python 项目管理工具,强制要求模块化设计,定义和规范包依赖关系,使开发和维护更容易。
构建在 Django 之上的 Web 框架,支持在单体服务上托管多个应用或微服务。内置安全和合规组件,提供企业所需的应用组件。
一个现代的 Python 包管理工具,有简单且相对快速的依赖解析器,兼容 PEP-517 和 PEP-621,有灵活且强大的插件系统,支持安装 Python,像 pnpm 一样的中心化安装缓存,节省磁盘空间。(star 7K)
54 ChatTTS 强大的文本生成语音模型
作者曾是卡内基梅隆大学的计算机课程助教,他最喜欢教的编程问题是计算数字的长度。这是一个看似简单,但存在很多深层思考空间的题目,文章对此做出了详细的解释。
模块间的循环依赖问题是一种常见错误,一般推荐从代码的结构分层上解决。作者提供了一种简短而实用的修复方案,简单地说就是推迟查找函数的模块主体,以便所需的模块先完成初始化。
一个新发起的草稿态提案,建议添加一个sys.prevent_yields()
上下文管理器,在yield
会引发 RuntimeError 时,阻止任务,提升安全。
2024 年的 PyCon US 活动已结束了,官方录制的视频和演讲材料等资源还需等待。这是一名参会者的长篇游记,回顾了她在几天里见到的风景、活动过程、演讲议题、见到的人,等等。由衷感叹,官方 PyCon 的氛围真不错!
文章出自“Python游戏开发”系列,该系列已更新两篇。介绍了Panda3D
这个 3D 游戏引擎库的安装和基本使用,渲染出的效果图真的很棒。
文章介绍了如何在本地部署近两周火热的 ChatTTS 项目、基本使用和进阶用法。
一张图片包含书籍里的文字内容,现需要提取出文本信息,怎么实现,以及优化性能?文章使用了scikit-image
库实现图片处理,先使用 Numba 来提速,然后分别多次优化实现的算法,达到较理想的性能提升。
OpenAI 新发布的 GPT-4o 很强,那么用它来生成一个支持数据库操作的 Flask 项目,同时具有 HTML 页面和 Tailwind 样式,效果能到怎样的程度呢?文章给出了主要的提示词和代码,最终呈现的效果还不错哟。
Scrapscript 是一门小型的、内容可寻址的、网络优先的编程语言。作者详细介绍了如何用 Python 给它开发出新的编译器的过程,解释了一些关键模块的实现原理。
这是一篇长文,但是并不枯燥。作者用了一个很好的例子,在不断变化的办公室里找人,由此引出哈希函数、相等函数、不可变和可哈希、哈希碰撞等内容。
文章使用 7 种语言来实现一个计算单词出现频率的题目,给定了很多的约束条件。文中对每种语言的实现都给出了详细介绍,并讨论了优化方案。文末还罗列了很多其它编程语言的实现情况。
《Think Python》出新版了,中文书名《像计算机科学家一样思考Python》,上一版是 2015 年出的,原版和译文版在豆瓣都有 8.8 高分。
一系列关于音乐处理基础的 Python 笔记资源,是用于教育和学习音乐处理的材料集合。(分享自:云云)
热度居高不下的文本转语音模型,支持中文和英文,语音效果很优秀。(star 21.7K)
Nike 公司开源,用于构建数据管道,与 PySpark 集成。
根据提示,生成书籍结构并扩展生成整本书内容。提供了托管在 Streamlit 上的版本,可以在线体验。
比其它缓存库快 5-20 倍,非常低的内存使用量(字典的三分之一),支持超过 7 种缓存算法,完全线程安全。
Google 内部用于快速开发 Web 应用的 UI 框架,使用 Python 代码编写 UI,响应式 UI、热重载、类型安全、丰富的 IDE 支持。(star 1.1K)
Qwen2 的官方仓库,支持 128K 上下文,显著提升了编码和数学能力。(star 4.2K)
翻译 RSS 的标题或内容,双语显示,支持 DeepL、OpenAI、Gemini 等多种翻译引擎,AI 内容总结,自动获取全文,缓存所翻译内容。
Perplexity 的开源替代,可运行本地或云上大模型。前端 Next.js,后端 FastAPI,日志记录 Logfire。(star 2K)
支持多种操作系统和 CPU 的命令行换源工具,可测试不同镜像源的速度,并选择最快的源。
一则 Reddit 上的帖子,评论区有很多分享,可以去看看。
在核心开发者云集的 PyCon 2024 现场,这期简短的播客聊到了当下较值得关注的一些话题。
这个系列播客每期介绍一界图灵奖获得者,包括他们的成长经历、所做贡献、社会影响等,资料详实,深入浅出。
55 分享 9 个高质量的技术类信息源!
大家好,我是猫哥,今天给大家分享几个高质量的技术类信息源。
本文分享的信息源都是周刊类型的,所谓周刊类,就是以固定每周的频率更新,每期分享很多精华内容的链接。它的特点是信息密度极高,可以节省你去查找信息的时间,高效的学习者都会喜欢这类内容。
如果不是看了这篇文章,我猜你可能想不到 Python 竟会有那么多的好东西,所以建议你可以收藏起来,总会有用的。
接下来我会逐一介绍每个信息源,并给出简短的点评。推荐指数从低到高,越往后面的越值得推荐!话不多说,开始吧——
1、Awesome Python Weekly
一份创刊自 2016 年的老牌周刊,每期分享大约 10 篇文章和 5 个开源项目,只有标题和链接,没有推荐语。已有 22K 订阅。
我并不推荐订阅,原因是:它是唯二把喂养蟒蛇的文章当成 Python 技术文章分享的;开源项目的链接放的是它网站的链接,需要再点一次才能跳到 Github;每期周刊有 3 则广告,而且是带描述语的,妥妥是所有周刊里含广率最高的……
虽然不推荐订阅,但我挺佩服周刊作者,因为他有 20 份技术类的周刊矩阵,能挣不少钱吧……
推荐指数:⭐
2、Python weekly newsletter
这份周刊跟上一份有不少相似之处:有标题和链接(以及评论数),但没有推荐语;曾把喂养蟒蛇的文章当成技术文章;作者有近 20 份技术类周刊,矩阵化自动化更新。
它很明显的特点是内容基本抓取自 Hacker News、Reddit、Twitter 和 Mastodon,比较依赖于评论热度,但质量良莠不齐。
它比上一份更值得推荐的点是:每期分享的文章、项目及视频较多,总数大约 25-30 条,而且很少有广告。
推荐指数:⭐⭐
3、This Week in Python
一份创立自 2022 年 3 月的周刊,每期固定分享 5 篇文章和 5 个开源项目。早期在每篇文章后有一句话简短介绍,现在只剩标题了,内容少而精,但是都能在其它周刊找到。没有广告。
值得推荐的点有:博主长期纯粹出于热爱的更新,以及偶尔会发布自己原创的文章。建议有自己博客的同学,可以像他一样每周简单分享自己阅读过的一些文章/项目的链接,人人都可以拥有自己的极简版周刊。
推荐指数:⭐⭐
4、Python on Microcontrollers Newsletter
这是 Python + 硬件方向的周刊,最近达到了 11K 订阅,成绩还不错。几乎没有广告。排版有点伤眼睛。
周刊以微控制器为题,其实是单板机(如树莓派)。随着物联网和智能家居等领域的发展,Python 与硬件的结合蛮有发展前景,只是这个领域的话题在国内比较小众。
推荐指数:⭐⭐⭐
5、Django News
创刊于 2019 年 12 月,聚焦于 Django 领域,内容主要是 Django 的新闻、开发版进展、文章、项目、活动和招聘等,不像其它周刊都是比较泛的话题。目前有 3.8K 订阅。
相比其它周刊,它的订阅数很少,但是广告收入很强。它是唯一公开报价,并可在线预约档期的周刊,每期两个广告位,每个 200 美元。
推荐指数:⭐⭐⭐
6、Python Hub Weekly Digest
创刊于 2012 年,应该是最早的周刊之一,作者是乌克兰人。每期大约 11 篇文章和 8 个开源项目/话题。
每期会包含前一两周的热门内容,而且常有一些发布时间很久的、近期没在其它周刊出现的内容。文章后基本都有一段介绍语,但内容经常只是简单摘自原文。它没有视频分类,所以常在“文章”类别下夹带视频。
页面干净,一直坚持无广告。它的社交账号很活跃,在 X 上有近 140K 关注。
推荐指数:⭐⭐⭐⭐
7、Pycoder’s Weekly
大概创刊于 2012 年,目前更新到第 630+ 期,订阅数有近 102K,X 账号的关注数有 120K。
它每期分享的非项目类内容有 15 条左右,项目类有大概 6 则,另外常有 Python 活动类资讯。每期广告数 2-3 则。
除项目外,它分享的内容之后基本都有一段推荐语,而且在内容下方还有网站或博客名称,以及投稿者的名称,这方面做得比其它周刊细致。内容上偶尔有些读者独家投稿,即没在别的周刊出现过。
周刊主理人也是 Real Python 的主理人,所以周刊上有很多自家网站上的文章和课程。
推荐指数:⭐⭐⭐⭐
8、Python Weekly
创刊最早的 Python 周刊之一,已更新到 650+ 期。每期的非项目类(新闻、文章、教程、演讲、播客)大概 12-15 则,项目工具类 11-15 则,另外还有很丰富的 Pyhton 活动类资讯。
非项目类内容的推荐语有些写得不错,也有些仅是简单摘录原文。项目类的数量蛮多的,不过介绍语都是直接取自 Github 简介。
我很佩服它能更新这么长时间,而且每期的质量都不低。它营利的手段似乎只是广告植入,不确定那些活动类信息是否有收入。作者还有 2 份周刊,分别面向程序员和创业者,办得都不错。
推荐指数:⭐⭐⭐⭐⭐
9、Python Trending Weekly
Python 潮流周刊,唯一的中文 Python 周刊,也是唯一会给读者送福利的周刊,也是唯一实行付费订阅的周刊。
创刊于 2023 年 5 月,是所有周刊里最年轻的。目前每期分享文章/教程类 12 篇,项目/资源类 12 则,偶尔有播客/视频和热门讨论 2-4 则。赠书已超过 80 本。
周刊分享的内容较多,且都附有认真总结的推荐语,导致每期的篇幅都很长,所花费的时间精力远超其它周刊。
分享的内容约有一半是直接取材于其它周刊,相当于萃取了一遍;另外的一半内容主要来源于个人博客、技术论坛、Github 趋势等贴近于原作者的第一手信息。
周刊中偶尔会附上一些精美截图,对读者的阅读体验更佳,这也是其它周刊不具备的特色。周刊每 30 期作为一季,会做出阶段性盘点,并汇集成册,这有利于历史内容发挥长尾效应,沉淀知识。
其它周刊都是英文,且主要是邮件推送,不太符合国人的阅读习惯。Python 潮流周刊面向中文读者,还有基于微信的推送和阅读方式,更为便利。
推荐指数:⭐⭐⭐⭐⭐
以上 9 份周刊就是本文想分享的信息源。周刊的信息密度极高,是信息时代里值得推荐给所有人的聪明手段,推荐大家折优订阅。
有些周刊实现了较高的自动化抓取,作者靠着运营周刊矩阵,不靠质量而凭数量,每周能收获到不菲的广告费;有的周刊坚持十年如一日的更新,让人敬佩的是它始终不接广告;还有的周刊在保证质量的同时,作出多样化的营利尝试,只为可持续的健康发展。
除了这 9 个外,还有不少的同类周刊,但由于篇幅有限,这里只选取了较有代表性的几个。除了这些周刊外,还有很多值得分享的高质量信息源,本系列会陆续更新,欢迎关注。
PS. 本文是
Python潮流周刊的端午节特别加更。授人以鱼不如授人以渔,从分享信息到分享信息源。如果你也知道一些同类的信息源,欢迎留言分享~~
56 NumPy 2.0 里更快速的字符串函数
NumPy 2.0 即将发布,这是 2006 年以来的第一个大版本。作者介绍了他们如何重新设计它的字符串函数(isalpha、add、find 和 startswith),解释了它们的执行原理,并做出了性能提升的统计。
在项目文件中,你是否留意过突然出现的__pycache__
文件夹,它是干嘛的,什么情况下生成的? 这篇文章详细介绍了它的作用、文件夹里的内容、生成的时机、如何递归删除、如何防止创建它、如何读取/执行和反编译缓存的字节码等。
CPython 如何实现内存管理的(包括引用计数和垃圾回收)?这是深度解读 CPython 解释器系列的最新一篇,分析了引用计数和分代垃圾回收的实现原理,研究了核心的数据结构、算法和源码,以及最新移除 GIL 时对内存管理的修改。
介绍了如何使用向量嵌入、向量数据库 qdrant 和 OpenAI 的 CLIP 模型,从零开始搭建一个图片搜索引擎。文中还用了 scrapy+selenium 爬取网上图片,使用 Flask 开发了简单的操作页面。
Pydantic 团队最近推出了一个新的日志记录工具 LogFire,除了简单打印日志外,它可以跟踪和分析程序的运行信息,记录 FastAPI 的请求参数和返回值,收集异常计数、连接数和内存使用情况等指标,看起来非常好用!
一个关于 FastAPI 的专栏,从基础到进阶,全面介绍 FastAPI 的使用。
作者用 Python 实现一个简单的 HTTP 服务端,以此来理解它的工作原理,介绍了控制请求、处理请求、发送响应等环节,以及所涉及的各项知识点。
微软在去年推出了“Python in Excel”预览版,好不好用呢?文章出自xlwings
库和《Python for Excel》的作者,介绍了他深度使用后的一些看法,认为这不是 VBA 的替代品而是 Excel 公式的替代品、将 Jupyter 笔记本单元格集成到 Excel 网格是个错误、等等。
照片中的书页有一定程度的卷曲,如何将文本内容提取成 PDF 文件?作者用“cubic sheet”模型作页面去畸变,用 OpenCV+PIL 实现文本提取。8 年前的文章,代码已开源在
page_dewarp,已收获 1.4K star。
Celery 是广泛使用的分布式任务队列,但作者认为它存在诸多问题,文章讨论了三类:缺少或未实现的功能、有问题的默认行为、可观察性不足。
Ansible 是用 Python 开发的自动化工具,常用于网络配置管理和应用部署等运维场景。文章介绍了它最新的 Rulebook 特性,可从多个事件源获取事件通知,从而触发某些操作。
文章称很多 Python 教材套用其它语言的知识框架,导致出现基本概念的错误,如变量和赋值。学校中使用的 Python 教材都是哪些书啊?有没有在校学生分享下教材里的错误呢?(分享自@老不老)(附:Python 畅销书也有一些过时的表述,见
Python 已经支持中文变量名啦!)
可将简单的 HTML 页面变成华丽的统计报告、发票、票据、书籍等。可读取普通文件、HTTP、FTP 和数据 URI。(star 6.8K)
一个安全扫描框架,可查找漏洞并执行侦察、枚举、指纹识别等操作。
JupyterLab 的跨平台桌面应用程序,支持 Windows、Mac 和 Linux,使用简单。(star 3.5K)
模式驱动的 Web 服务端框架。服务端 API 是 Rust、Node.js 和 Python 的原生 API,受 GraphQL 和 Prisma 启发,自动数据库迁移。(star 1.1K)
将 SQL 视为代码,写在“.sql”文件中,可加载到 Python 程序中作为函数调用,重用性高,可集中管理维护。(star 1.3K)
将 OpenAI 的代码解释器与 Python Notebook 开发环境结合,除常规功能外,还可用自然语言生成单元格、编辑代码、提问和修复 bug。
Windows Recall 和 Limitless Rewind.ai 的开源替代,隐私优先,支持 Windows、macOS 和 Linux。定期记录屏幕截图,分析其文本和图像,让你可通过语义搜索,快速查找信息和回看浏览记录。(star 1.3K)
requests
不支持异步,这个库为它加上concurrent.futures
的异步实现。(star 2.1K)
提供对 WebSocket 低级 API 的访问,实现了 WebSocket 协议的 hybi-13 版本。当前不支持 RFC 7692 中的 permessage-deflate 扩展。(star 3.5K)
用 Python 实现的 WiFi 渗透工具,帮助白帽黑客和测试人员审计和保护家庭及企业的网络。仅支持 Linux 系统,网卡需支持监视器模式和帧注入。
在 CI 服务器上运行,可构建和测试你的 wheel 包,目前支持 GitHub Actions、Azure Pipelines、Travis CI、AppVeyor、CircleCI 和 GitLab CI。(star 1.8K)
这是一个专门收集速查表(Cheat Sheet)的网站,分为编程、软件、商业与营销、教育、家庭与健康、游戏与爱好等类别。其中 Python 分类下有 446 份,是所有类别中最多的。
57 Python 该采用日历版本吗?
距离 Numpy 1.0 发布已 18 年,2.0 版本是一个重要的里程碑。它引入了一些非兼容性的修改,重要的升级:清理和简化了 Python API、更新了标量提升规则、强大的 DType API 和新的字符串 dtype、增强 Windows 兼容性、支持 Python 数组 API 标准。(附:
NumPy 2.0.0 Release Notes)
我们去年将 Python 语言峰会的所有议题出了
一期加更,今年只挑三则,更多议题请查看
官方博客。这篇议题讨论的是将 Python 当前的语义版本控制(SemVer)改为日历版本控制(CalVer),即在版本号中加上年份,例如 3.26 表示在 2026 年发布的版本。备选的格式有以年份为主的“26.0.0”,以及年加月的“26.10.0”。
今年 Python 语言峰会的议题之一,出自国内最近成为核心开发者的@高天。讨论了可以给 pdb 添加的一些新功能,包括显示断点附加代码、终端中的语法高亮、支持自定义、处理更多场景(线程、异步、字节码、远程调试);也提出将 pdb 底层切换成sys.monitoring
以提升性能,但这会引入向后兼容问题。
今年 Python 语言峰会的议题之一,讨论 Python 在 iOS 和 Android 等移动端上的现状和发展方向。Python 3.13 对 Android 和 iOS 上的 Python 提供 Tier 3 级支持。BeeWare 团队正推动将 Python 开源包生态引入移动端,在 CPython 测试套件和构建工具上也会加大投入。
探讨了如何管理 Python 项目的环境和依赖项,以及如何有效地构建项目,内容较长。
作者使用 Python 已长达 17 年,到底是什么内容让她发出“啊哈”的感叹?作者研究str.join()
时发现一个奇怪的问题:当使用生成器作为str.join()
的入参时,性能比使用列表推导式慢约 16%。原因是 join() 会先将生成器转换为列表,然后拼接,因此导致额外的开销。PyPy 则不会做这种处理,它用生成器做入参时比列表推导式快约 5 倍。
在使用资源时,经常要做重复性任务,如设置和关闭进程、打开和关闭资源。这些场景最适合用上下文管理器,文章介绍什么是上下文管理器、详细的使用指南、典型的使用场景和常见问题。
Rust 开发的高性能 Polars 正在蚕食 Pandas 的市场份额。从 Panas 迁移到 Polars 是不是很麻烦?会不会导致数据处理流程和工具不兼容?作者演示了无缝切换的过程。
这是对 PyCon 2024 一场演讲的文字报道,演讲者是给 Python 3.13 引入 JIT 编译器的 Brandt Bucher。介绍了 Python 3.13 前做的一系列改进,为什么要在 3.13 引入 JIT 编译器,团队当前所做的一些工作以及核心的实现细节问题。
文章分享了作者调试 Python 3.13 Beta 版本一个 Bug 的经历,涉及的模块是最新引入的 JIT/Tier 2 优化器。
作者用第 53 期分享过的tach
库分析 3000 个文件,耗时近 10 秒。文章分析了耗时多的原因,然后用 Rust 重写了 C 代码,结果提速近 20 倍。使用了性能分析工具有 py-spy、speedscope 和 Valgrind。
这是一个系列文章的第一篇,试图解析 Ruff 库的内部实现原理,包括 Rust 和 Python 如何相互操作、Ruff 第一个版本是如何工作的、现在版本有哪些组成部分等内容。
利用 OpenAI 的文本转语音模型和 Google Gemini 来处理 PDF 文件,生成自然对话类播客,并输出为 MP3 文件。
帮助用 Python 和 Rust 开发出漂亮的终端用户界面。包含一个强大而通用的颜色库。
Web 全栈项目,构建完全客户端渲染的 React 应用,后端基于 Django,支持表单、会话验证和消息。支持 Storybook 和 Vite 热模块重载。
从 DevOps 到 AIOps,查看告警并获取缺失的上下文数据,更快地找到根本原因。
一个用 Python 开发的图形图像标注工具,用 Qt 作图形界面。支持分类和清理图像标注,也支持视频标注,支持 GUI 定制。(star 12.7K)
简单的静态站点/博客生成器,渲染 4000 个 Markdown 文件大约花 1 秒钟。
以一种美观和清晰的方式将 curl(1)
统计数据可视化。单个 Python 文件,无外部依赖。(star 6K)
提供可视化编辑器,支持拖放,无需写代码即可构建 UI;用 Python 编写后端代码,界面与业务逻辑间实现关注点分离。(star 1.2K)
一个文档 OCR 工具包,支持 90+ 语言,行级文本检测,支持布局分析(表格、图像、页眉等)。(star 8.8K)
MiniCPM-V 系列的最新版本模型,共 8B 参数量,OpenCompass 得分超过 GPT-4V-1106、Gemini Pro、Claude 3、Qwen-VL-Max 等主流商用闭源多模态大模型。(star 7.5K)
用于检测多变量数据中的异常,支持 50 多种检测算法,下载量超过 1700 万次。利用 numba 和 joblib 进行 JIT 编译和并行处理,拥有超高性能。(star 8.1K)
NVIDIA 推出的框架,可将普通 Python 函数用 JIT 编译成在 CPU 或 GPU 上运行的高效的内核代码。专为空间计算而设计,可轻松编写用于物理模拟、感知、机器人和几何处理的程序。(star 3.4K)
58 最快运行原型的语言
支付系统早期使用 COBOL 语言开发,在 1990 年代开始转向 Java 或 C++,但如今正转向更为现代的语言,也就是 Python。作者对此现象给出自己的解读,给出了 4 个方面的原因。最关键的一点,Python 能帮人以最快的速度运行原型,在这个“快鱼吃慢鱼”的时代,得以占据主导地位。
上期已经分享过有人提议 Python 改用日历年做版本号的新闻,这是对应的 PEP 提案。格式3.YY.micro
,其中 YY 是指该版本发布的年份,例如 3.26 是指在 2026 年发布。
介绍了 Timefold 项目的优点和使用方法,可用于优化车辆路线问题、员工排班、任务分配、维护调度和其它规划问题。
出自深度解析 CPython 解释器源码系列,探析了集合(set)数据结构是如何实现的、它的数据模型、关键方法的实现(插入、查找、删除、弹出)。
你可能没有接触过weakref
模块,但它是许多库、框架甚至 Python 自身的基础。文章介绍了它是什么、有什么用途,以及如何在代码中使用它。
生成式 AI 正在帮助程序员更快速高效地开发,作者通过自己的例子,演示如何一步步让 AI 帮忙从很多漫画中找到他想找的那张。提出问题/项目想法,然后让 AI 不断挑战,看看它能做到什么程度,也许你会找到一些能提升自己日常工作的方法。
作者做了一个关于从命令行访问大语言模型的演讲,这篇文章是对其演讲视频的注释版/补充版文字稿。文中有很多参考材料。
想要将自己开发的包发布到 PyPI 上是怎样的流程?如何创建符合要求的 Python 包?可以使用什么包构建工具?配置文件中的配置项是什么含义?如何发布包?还有什么主意事项?
你是否碰到要将一个项目克隆到一个新的地方,然后将它运行起来?在启动时,关于虚拟环境、依赖项安装等操作,可以使用脚本自动处理,文章演示了一个非常基本的示例。
高效的 Python 开发者如何使用工具解决开发环境相关的问题?作者将自己多年的开发经验分享出来,主要关于如何使用 Make&Makefile 解决一系列问题,提升开发效率。
作者认为 Notebook 的流行并不是一件好事,文章从个人角度和团队角度,各列出了 Notebook 不好的 4 条理由,包括缺乏版本控制、不像 IDE 纯粹和方便阅读代码、不便于协作、难以移动和测试,等等。
在实际的项目开发中,我们可能会遇到作者那样的情况:为了解决 A 问题,克服重重困难终于实现了 B 解决方案,但接着发现它在某种场景下会失效,最后迫不得已采用全新的 C 解决方案。在解决问题的过程中,一些有价值的经验教训就出现了。
这是一本开源的 Python 电子书,包含 30 个大章节,涵盖 Python 基础到进阶的系列内容。可在线阅读,也可下载 PDF 版本。
一个 CLI 库,可与安装在本地的大模型交互,也可以调用线上大模型。在命令行中运行提示词,将结果存储在 SQLite,生成嵌入,等等。(star 3.4K)
开发完项目后,让大语言模型直接帮你生成所有的文档!
构建 Python 开发环境时,环境管理、版本选择、依赖管理等问题的示例配置。
这个库的名字是“秃鹫”,很形象地表明它的用途:查找并清理代码中死亡的(未使用的)代码。使用静态代码分析,速度很快。(star 3.2K)
电脑端微信的清理工具,可自动删除所有聊天中自动下载的大量文件、视频、图片等数据内容,解放你的空间。(star 4.2K)
Windows 微信版的自动化工具,可收发消息、保存聊天图片。(star 1.8K)
可将有道云笔记的所有笔记按原格式下载,转换为 Markdown;默认将有道云笔记图床的图片下载到本地,可指定上传到 SM.MS。(star 1.2K)
跨数据库的数据比对,在数据库内执行差异计算,最大限度减少数据传输从而实现高性能。基于匹配哈希的分而治之算法,支持 10 多个数据库。
一个完整的 HR 管理系统,包含 13 个不同模块。前端部分使用的 Vue 框架。
适用于任何使用 LLM 的项目,提供实时跟踪/监控系统界面。
在熟悉的 Jupyter Notebook 之上,使用本地 AI 生成和编辑代码单元、自动修复错误以及与数据聊天。
59 Polars 1.0 发布了,PyCon US 2024 演讲视频也发布了
Polars 成立 4 年,已获得 27.5K star,现在正式发布 1.0 版本。今后的计划包括设计新的流式处理引擎、使用 NVIDIA RAPIDS 实现 GPU 加速、提供 Polars 云托管服务,等等。(附:
Polars vs. pandas:有什么区别?)
一些 APP 在升到 Python 3.12 版本后,因含有特定字符串“itms-services”而被苹果应用商店拒绝。文章回顾了 Python 开发者们长达一周的讨论,最终共识是在 Python 3.13 版本中添加构建选项
--with-app-store-compliance
来解决这个问题。(附:
Python 论坛的详细讨论)
从 PDF 文件中提取文本时会面临诸多问题:基于位置的固定布局、缺乏逻辑结构、包含扫描或拍摄的图像、伪影、表格内容和纵横向页面等。文章介绍了LLMWhisperer
的 PDF 转文本服务,以及它是如何有效解决内容提取问题。
非负整数 n 的阶乘是指所有小于或等于 n 的正整数的乘积。文章介绍了多种实现方法,包括 math.factorial(n)、迭代法、生成器方法、列表推导式法、递归法,等等。
文章给出了 27 条关于 Python 开发的建议,涵盖 Python 环境管理、依赖管理、项目结构、格式化工具、测试工具、建议的语法、应用设计、软件库的选择等方面。
MicroPython 是专为微控制器和嵌入式系统设计的Python 解释器,这个入门指南系列开篇介绍了环境配置、一些基本概念和基础使用。
Python 项目提升性能的方式之一是调用其它语言开发好的类库,文章介绍使用pythonnet
库调用 .NET 开发好的 dll 库,并测试了它与原生 Python 代码的性能差异。
作者介绍了如何将 Python 程序嵌入到循环神经网络(RNN)中,并利用训练有素的 RNN 来执行任务,相比于手写算法并反复调试改进,嵌入到神经网络的方法表现得更好。
稀疏数组(Sparse Array)中大部分元素都是零或者其它形式的占位符,只有少数元素是非零或有意义的值。文章介绍为什么要用稀疏数组、常用的存储格式、用于处理稀疏数组的 Python 库(sparse、scipy.sparse、cupyx.sparse、torch.sparse 等)。
当你在 Stack Overflow 等地方提了个问题,有人留言说可以安装某个库解决,这时候你大概率会去尝试一下吧?然而,这个库有可能是个恶意软件!文章分析了最近一个“新颖的”攻击方法,提醒大家留意。
作者介绍如何用 JavaScript 的Prettier
格式化工具及其插件,对 jinja 模板文件做格式化,另外还提及两个纯 Python 实现的替代方案:curlylint
和 DjHTML
。
编程时经常涉及要同步修改代码中的多个位置,文章介绍了两种方法:派生与测试。文章通过 4 个现实示例演示了相关用法,理想化的全自动同步方法可能要付出很大代价,手动同步代码并配合测试或许会更合理。
微软最新开源的 RAG 系统,使用 LLM 的强大功能从非结构化文本中提取有意义的结构化数据。使用知识图谱记忆结构来增强 LLM 输出。(star 4.6K)
基于 PyScript,完全在浏览器中运行的前端框架,部分灵感来自于 Vue。目标是支持 Pyodide 和 Micropython。
完全用 Rust 开发的提供给 Python 使用的 PostgreSQL 驱动,速度快,类型安全。
Jupyter 的改进版本,添加了 AI 代码生成和编辑、内联选项卡补全、侧边栏聊天和错误修复等功能。(star 1.8K)
这个项目旨在收集李白诗歌及相关资料,构建李白知识图谱,训练专业的 AI 智能体,最终开发出可互动的李白对话应用。
用 Rust 开发的正则表达式库,旨在替代 Python 原生的re
模块。大部分函数与re
相同,但也有例外。
使用 Llama-3 对大量繁体中文和英文数据进行微调而成的大模型,具有较强的语言理解能力、生成能力、推理能力、多回合对话能力。(star 1.1K)
tkinter 的美化主题,受 Bootstrap 启发的设计风格。内置 10 几个深色和浅色主题,大量预定义的小组件,支持创建自己的主题。(star 1.8K)
一个功能齐全的 Web 安全服务器(基于 NGINX),可无缝集成到多种环境(Linux,Docker,Swarm,Kubernetes 等),提供有控制台 Web UI。(star 3.8K)
一款交互式的绘图应用,当在画布上写上数学方程式时,多模态 LLM 会计算结果并显示在等号旁边。灵感来自 Apple WWDC 2024 的“Math Notes”演示。
基于Cookiecutter
,能快速启动一个功能完备的 Django 项目。支持 Django 4.2 和 Python 3.12,有 100% 启动测试覆盖率。 (star 11.8K)
一个数字人系统,集成了各种技术,如 Whisper、Linly、Microsoft 语音和 SadTalker 说话生成系统。(star 1.2K)
PyCon 官方上传了 2024 年 PyCon US 的演讲视频。
PyCon 瑞典也更新了他们今年活动上的演讲视频。
60 Python 的包管理工具真是多啊
Python 的包管理生态说得好听点是多元化,难听点就是支离破碎。作者对 10 几个 Python 包管理/虚拟环境管理工具做了个简单盘点,最后的建议是:数据科学/实验人员用
conda
,其他人在生产环境用
pip
或
poetry
。(附:一篇
中文翻译)
一个 Python Web 全栈开发系列,使用 Flask 和 HTMX 开发一个具有交互性的博客,。该系列第二篇是高级版,加入了 TailwindCSS 和身份验证的功能。
作者在飞机上发现连 Wi-Fi 需要填信用卡,但能免费登录航空里程账户。于是,想出不断更新账号的个人资料来实现消息传递的方法。文章介绍了实现原理,实现了几个原型,包括即时通讯、时事新闻/股价和足球比分消息等,也给出了提升效率和改进的思路。
作者遇到一个跟随机数有关的 bug,于是研究如何让随机数变得可预测,并想完全不改动现有的 Python 代码。介绍了如何用ptrace
来拦截和修改对getrandom
的系统调用。
ChatGPT 能在沙盒环境中执行 Python 代码和系统命令,作者揭开了它的神秘面纱,原来是 Azure 云平台 K8S 集群的机器,作者尝试了多种命令包括查看进程、访问网络、上传和下载文件等,还找到沙盒环境的完整 Python 源码,大约 650 行。
一个很有意思的项目,作者使用 AI、树莓派和电机装置创建一个自动从窗户投放帽子的项目,已开放线上售卖,这真是一种新颖的购物体验!
uv
是用 Rust 开发的 pip 替代库,Streamlit 云采用它后,相比 pip 获得了极大的速度提升。文章分析了为什么 pip 那么慢,以及 uv 使用了哪些提升性能的技巧。
作者本周在芝加哥 Python 聚会小组(The Chicago Python Meetup Group)发表了关于 CPython JIT 的演讲,这篇文章包含他分享时完整的 PPT 和相关资料。(附:
如何上手最新的 CPython JIT?)
通常一个 Python 软件包的名称跟它的模块名称一样,但这仅是不成文的约定。文章获取了 PyPI 上最受欢迎的 8000 个包,分析它们的命名,发现有 81% 的包名和模块名一样。文章还分析了其它内容,包括命名空间、常用的前缀/后缀等。
作者开发的Cirron
库能跟踪系统调用并记录单行代码的性能。文章利用它来对比了 Python 和 Ruby 在文件 IO、生成随机数、显示时间、打印字符串等操作时,系统调用命令及耗时的差异。
介绍了如何让 Github Action 自动执行爬虫程序,并将爬到的数据保存到 Github Artifact 里,全免费无需服务器。文章介绍了相关流程、配置内容和实现限制等。
作者从事软件开发 35 年,给大家分享 12 条深刻的经验教训,主要是些软技能,包括以最直接的方式做事、人际关系很重要、永远不要隐身、心甘情愿做事,等等。
作者作为一名经验丰富的程序员,很希望自己能早点看到这些建议:主动修复易被忽视的小问题、权衡开发速度与代码质量、简化复杂问题、对 BUG 刨根问底、接受不完美代码,等等。
🎁Python潮流周刊🎁第 1 季精华内容已整理成精美电子书(EPUB/PDF),请给 Python猫 公众号发送“W30”,获取免费下载链接。
DNS 模糊测试,检测可能的恶意域名,发现网络钓鱼攻击和品牌冒充等问题。(star 4.7K)
在终端上的类 Postman 和 Insomnia HTTP 客户端,支持语法高亮、Vim 快捷键、各种内置主题、可自动补全的环境变量、用于快速访问的命令面板,等等。(star 1.9K)
为文件系统的接口生成模板和规范文件,以便提供稳定可靠的通用行为。Pandas、Dask 和 Huggingface Datasets 等库在内部都使用了这个库。
主要用于 Web 项目做国际化,处理多语言的展示问题。(star 1.3K)
可用于快速搭建和部署基于 FastAPI 的服务,技术栈还包括数据库映射 SQLModel、依赖管理 Poetry、数据库迁移 Alembic。
提取 AI、LLMsRAG 或 GPT 的数据。从网站下载 HTML、PDF、JPG、PNG 和其它文件,适用于 BeautifulSoup、Playwright 和原生 HTTP。提供有头和无头模式,支持代理轮换。(star 1K)
基于 Django 的项目,在 SQL 编辑器中编写和共享 SQL,在浏览器中查看结果。支持添加 LLM 助手,帮忙编写和调试 SQL。(star 2.7K)
用 Python 开发像素风的复古游戏,可在 Windows、Mac、Linux 和 Web 上运行,支持键盘、鼠标及游戏手柄输入。(star 14K)
针对 Linux 系统的 X 光透视,检测程序性能。支持测量线程级活动,查看单个线程或整个系统的 CPU 使用率。(star 1.2K)
实用的工具集,可运行安全评估的任务和工作流,支持数十种知名安全工具,提高渗透测试人员和安全研究员的工作效率。
将 RSS 转换为邮件,100% 免费开源,与 listmonk 集成发送邮件。
SQLite 的运行时可加载扩展,支持基于 hnswlib 的快速 ANN 搜索,支持 Windows、MacOS 和 Linux。
由快手、中科大和复旦大学开源的人物肖像动画模型,支持音视频串联、驱动视频自动裁剪、模板制作等。(star 6K)