Python 潮流周刊#79:Python 的元数据困境
你好,我是猫哥。这里每周分享优质的 Python、AI 及通用技术内容,大部分为英文。周刊开源在 Github[1] 上,喜欢请给颗小星星支持下~
本期分享了 12 篇文章,12 个开源项目,2 则热门讨论,全文 2200 字。
🦄文章&教程[2]
1、约束是好的:Python 的元数据困境[3]
作者指出 Python 的元数据系统太复杂了,存在 “缺乏约束” 的问题。通过与 JavaScript 对比,文章列出了 Python 元数据的诸多问题:复杂的元数据访问、必须重新生成的元数据、缓存失效不明确以及动态元数据导致的解析器效率低下。
2、Talk Python 网站用 Quart 重写了[4]
Talk Python 网站是 2015 年用 Pyramid 框架开发的,但该框架已发展停滞。文章讨论了多种知名 Python Web 框架,介绍了为什么不选择它们,为什么会选择 Quart(异步 Flask),以及迁移的过程。
3、Python 不仅是胶水,它是一个隐性的 JIT 生态系统[5]
在传统的 JIT 编译中,程序会在运行时优化其热路径(常执行的代码段)。作者发现 Python 的社区生态系统做了非常相似的事,在某些路径上持续遇到性能瓶颈时,生态系统会优化这些路径。
4、Python 类型提示在实践中可能不适合我[6]
作者尝试了用 Python 类型提示,但发现它带来的收益不比麻烦多。偶尔开发小型的单人 Python 项目,这种情况下确实可以不太关心类型提示的使用。(附:该作者还写了一篇 我使用 Python 类型提示和 mypy 的一些经验[7])
5、Python 项目管理和打包综合指南:构建与发布[8]
使用热门的 uv 来介绍 Python 项目管理,这是系列第二篇,关于项目构建与发布流程,包括构建系统、源码树、构建前后端接口、可编辑安装和自定义构建过程,以及如何处理依赖和元数据等问题。
6、2024 年,并发运行 100 万个任务需要多少内存?[9]
作者用 Rust、C#、NodeJS、Python、Go、Java 的协程,进行并发任务占用内存的基准测试,分别测试 1、10K、100K、1M 个任务时,这些编程语言的表现。(附:作者在去年做的对比 不同语言运行100万个并发任务需要多少内存?)
7、突破 Streamlit 的界限[10]
作者分享了使用 Streamlit 开发 Web UI 的体验,介绍了在集成语音接口和处理长时间运行任务时遇到的挑战,并分享了如何通过自定义组件和多线程来克服困难。
8、使用 GitHub Actions 运行 Python 脚本[11]
作者分享了使用 GitHub Action 作自动化的经验,着重介绍 GitHub Action 工作流的配置,如何调用 Python 脚本,实现了自己的一项自动化任务。
9、利用 Python 打包求解布尔满足性和整数规划[12]
作者受到 Python 打包解决数独问题的启发,开发了一个名为 pipip 的求解器,利用 Python 包依赖解析器来解决布尔可满足性(SAT)和 0/1 整数规划(IP)问题。文章详细解释了原理、实现细节和使用示例。
10、简化 Django 迁移:高效压缩指南[13]
作者运行了 6 年的 Django 项目有近 300 个模块,如何降低迁移的风险成了一项挑战。文章介绍了用 django-model-info 生成迁移图,识别安全压缩的迁移路径并做压缩,整个过程减少了迁移文件数,优化了部署时间。
11、累积运算在不同编程语言中的实现[14]
了解的编程语言越多,你对它们的理解就越深。作者对比了 Python、R、Haskell、APL 和 Julia 等语言实现累积运算(如accumulate和cumsum)的方法,能看出它们在解决相同问题时的多样性。
12、不同语言的 10 亿次嵌套循环迭代对比图[15]
10 多种编程语言执行 10 亿次嵌套循环,所花费的执行时间做成了动图,看到末位的 Python 一直在龟速挪动,真为它感到着急……
🐿️项目&资源[16]
1、aisuite:为多个生成式 AI 提供简单统一的接口[17]
提供标准化的接口,让开发者可方便地使用多个 LLM。使用类似于 OpenAI 的界面,专注于聊天模式。(star 5.6K)
2、opennb:从 GitHub 代码仓或 URL 中打开 Jupyter 笔记本[18]
支持基于 Github 代码仓文件路径打开 ipynb 文件,自动检测默认分支,支持使用指定分支。也支持直接的 URL 打开 ipynb 文件。支持给笔记本传递参数。
3、ridgeplot:用 Python 画漂亮的山脊线图[19]
基于 Plotly 实现的简单工具,可绘制美观且交互式的山脊线图。
4、Qwen2.5-Coder:阿里云 Qwen 大语言模型的代码版本[20]
功能强大的国产开源大语言模型,支持 92 种编程语言,上下文长度为 128K Token。(star 3.1K)
5、pex: 用于生成 \.pex 文件、锁文件和 venv 的工具[21]
.pex 是一种 Python 可执行文件,是对 PEP-441 中思想的拓展,使 Python 程序的部署像cp 一样简单。单个 pex 文件可以包含多个 Python 发行版,这意味着它可在 Linux 和 OS X 间移植。(star 2.9K)
6、pipe-operator: Elixir 管道运算符的 Python 实现[22]
这个库让你在 Python 中用类似于 elixir 管道的语法。
7、Sequoia:A 股自动选股程序[23]
从东方财富获取数据,实现了若干种选股策略,包括海龟交易法则、缠中说禅牛市买点,以及其他若干种技术形态。(star 2.2K)
8、LLMLLM-Engineers-Handbook:LLM 的实用指南手册[24]
这本电子书的目标是教你用最佳实践创建端到端的基于 LLM 的系统,包括数据采集与生成、训练管道、简单的 RAG 系统、生产就绪的 AWS 部署、全面的监控、测试和评估框架。(star 1.8K)
9、bbot:面向黑客的互联网扫描仪[25]
一款受 Spiderfoot 启发的多功能扫描仪,旨在自动化你的侦察、漏洞赏金和 ASM。(star 7.1K)
10、Scraperr:自托管的网络爬虫[26]
一个自托管的网络爬虫,通过 XPath 指定元素来抓取数据。支持以 URL 进行抓取、管理之前的任务、用户管理、查看日志、统计分析、集成 AI 等功能。(star 1.2K)
11、ImportSpy:主动控制模块如何被导入使用[27]
支持为模块定义明确的规则,并在外部模块导入你模块前,校验它是否符合这些规则,减少因导入不当或环境配置错误而导致的错误。
12、zerox:由视觉模型支持的 PDF 转 Markdown[28]
利用视觉模型 AI 作精准的文件内容提取,克服奇怪的布局、表格和图表等难题。(star 6.7K)
🥂讨论&问题[29]
1、关于 Python 项目的生产环境部署[30]
公司有很多 Python 项目,生产用什么部署方案?如何作包管理?多服务间通信是用 http 还是 rpc?
2、你最喜欢的 Python 演讲是什么?[31]
pyvideo 上有 19163 场会议演讲,大家有什么最喜欢的演讲或演讲者可以推荐么?
🐧 往年回顾[32]
Python 潮流周刊#29:Rust 会比 Python 慢?! [33](2023.12.02)
🐱欢迎订阅[34]
技术周刊是聪明人在信息过载时代中筛选优质知识的聪明手段。这是一个专为国内 Python 开发者量身打造的资讯平台,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等丰富内容。立即订阅[35],每周将收到一篇文章推送,每周进步一点点。
欢迎留言,说说你最喜欢本期的哪一则分享?大家反馈得越多,我今后分享的也会越多!
欢迎将本专栏[36]分享给同样爱学习的同学,当有人通过你分享的海报或者链接,购买了专栏,那么你将获得高额的返利。
Python 潮流周刊第 2 季完结了,分享几项总结[37]
Python 潮流周刊第一季精华合集(1~30)[38]
万字浓缩版,Python 潮流周刊第 1 季的 800 个链接![39]
🎨关联阅读
上一期:Python 潮流周刊#78:async/await 是糟糕的设计[40]
下一期:Python 潮流周刊#80:Django 项目性能调优[41]
Github: https://github.com/chinesehuazhou/python-weekly
[2]🦄文章&教程: https://xiaobot.net/p/python_weekly
[3]约束是好的:Python 的元数据困境: https://lucumr.pocoo.org/2024/11/26/python-packaging-metadata/
[4]Talk Python 网站用 Quart 重写了: https://talkpython.fm/blog/posts/talk-python-rewritten-in-quart-async-flask/
[5]Python 不仅是胶水,它是一个隐性的 JIT 生态系统: https://state.smerity.com/smerity/state/01JC39KW1TBEAZTKJJF0BR5ZXD
[6]Python 类型提示在实践中可能不适合我: https://utcc.utoronto.ca/~cks/space/blog/python/TypeHintsMaybeNotForMe
[7]我使用 Python 类型提示和 mypy 的一些经验: https://utcc.utoronto.ca/~cks/space/blog/python/TypeHintsAndMyPyNotes
[8]Python 项目管理和打包综合指南:构建与发布: https://reinforcedknowledge.com/a-comprehensive-guide-to-python-project-management-and-packaging-concepts-illustrated-with-uv-part-2/
[9]2024 年,并发运行 100 万个任务需要多少内存?: https://hez2010.github.io/async-runtimes-benchmarks-2024/
[10]突破 Streamlit 的界限: https://twitchard.github.io/posts/2024-11-27-streamlit.html
[11]使用 GitHub Actions 运行 Python 脚本: https://mechanicalgirl.com/post/using-gitHub-actions-run-python-script/
[12]利用 Python 打包求解布尔满足性和整数规划: https://mmaaz.ca/writings/pipip.html
[13]简化 Django 迁移:高效压缩指南: https://jacklinke.com/squashing-django-migrations-the-easy-way
[14]累积运算在不同编程语言中的实现: https://jcarroll.com.au/2024/11/28/these-languages-are-accumulating/
[15]不同语言的 10 亿次嵌套循环迭代对比图: https://benjdd.com/languages
[16]🐿️项目&资源: https://xiaobot.net/p/python_weekly
[17]aisuite:为多个生成式 AI 提供简单统一的接口: https://github.com/andrewyng/aisuite
[18]opennb:从 GitHub 代码仓或 URL 中打开 Jupyter 笔记本: https://github.com/basnijholt/opennb
[19]ridgeplot:用 Python 画漂亮的山脊线图: https://github.com/tpvasconcelos/ridgeplot
[20]Qwen2.5-Coder:阿里云 Qwen 大语言模型的代码版本: https://github.com/QwenLM/Qwen2.5-Coder
[21]pex: 用于生成 .pex 文件、锁文件和 venv 的工具: https://github.com/pex-tool/pex
[22]pipe-operator: Elixir 管道运算符的 Python 实现: https://github.com/Jordan-Kowal/pipe-operator
[23]Sequoia:A 股自动选股程序: https://github.com/sngyai/Sequoia
[24]LLMLLM-Engineers-Handbook:LLM 的实用指南手册: https://github.com/PacktPublishing/LLM-Engineers-Handbook
[25]bbot:面向黑客的互联网扫描仪: https://github.com/blacklanternsecurity/bbot
[26]Scraperr:自托管的网络爬虫: https://github.com/jaypyles/Scraperr
[27]ImportSpy:主动控制模块如何被导入使用: https://github.com/atellaluca/ImportSpy
[28]zerox:由视觉模型支持的 PDF 转 Markdown: https://github.com/getomni-ai/zerox
[29]🥂讨论&问题: https://xiaobot.net/p/python_weekly
[30]关于 Python 项目的生产环境部署: https://www.v2ex.com/t/1085332
[31]你最喜欢的 Python 演讲是什么?: https://www.reddit.com/r/Python/comments/1h1qun7/what_are_you_alltime_favorite_python_talks/
[32]🐧 往年回顾: https://xiaobot.net/p/python_weekly
[33]Python 潮流周刊#29:Rust 会比 Python 慢?! : https://pythoncat.top/posts/2023-12-02-weekly
[34]🐱欢迎订阅: https://xiaobot.net/p/python_weekly
[35]立即订阅: https://xiaobot.net/p/python_weekly
[36]本专栏: https://xiaobot.net/p/python_weekly
[37]Python 潮流周刊第 2 季完结了,分享几项总结: https://pythoncat.top/posts/2024-07-14-iweekly
[38]Python 潮流周刊第一季精华合集(1~30): https://pythoncat.top/posts/2023-12-11-weekly
[39]万字浓缩版,Python 潮流周刊第 1 季的 800 个链接!: https://xiaobot.net/post/78c3d645-86fa-4bd8-8eac-46fb192a339e
[40]Python 潮流周刊#78:async/await 是糟糕的设计: https://pythoncat.top/posts/2024-11-23-weekly
[41]Python 潮流周刊#80:Django 项目性能调优: https://pythoncat.top/posts/2024-12-07-weekly