△△请给“Python猫”加星标 ,以免错过文章推送
你好,我是猫哥。这里每周分享优质的 Python、AI 及通用技术内容,大部分为英文。本周刊开源,欢迎投稿[1]。另有电报频道[2]作为副刊,补充发布更加丰富的资讯,欢迎关注。
1、一年后的 Python 打包:回顾 2023 年 Python 的打包[3]
作者一年前吐槽了 Python 打包的悲惨状况,一年后再看,有什么改善么?还是变得更糟糕了呢?文章讨论了社区里主流的打包工具、PEP 标准及其落实情况,尽管有不少新东西,但看起来还是很黯淡。
2、PyCon 2023(美国和澳大利亚)所有演讲视频[4]
文章整理了去年 PyCon US 和 Python AU 的 243 个视频,按照 Youtube 播放数排序。都不算多,而且第一名和第二名的差距非常之大。
3、Python 的 Synchronized[5]
Java 中用synchronized
关键字可以保证变量是线程安全的,Python 中有什么东西可以达到相同效果么?文章介绍了threading
模块的 Lock + 上下文管理器 + 装饰器的实现方案。
4、更快的 Python C 扩展的类型信息[6]
PyPy 是一个 Python 解释器,它的 C API 兼容层存在一些性能问题,作者正在研究使 PyPy 的 C API 变快方法,文章介绍了他们所做的工作。
5、通过示例比较 Kotlin 和 Python 中的协程[7]
作者在用 Python 和 Kotlin 开发时,都接触了协程,因此写了几篇文章来比较它们的用法、分析它们的细节和工作原理,涉及文件读写、HTTP 请求、序列和生成器,可以加深你对协程的理解。
6、Pydantic 处理 1970 年代时间的奇特问题[8]
Pydantic 在处理 Unix 时间戳时会猜测是以秒还是毫秒为单位,但这遇到 1970 年的时间就有问题啦!众所周知,计算机世界的时间戳从 1970-1-1 开始(UNIX 纪元),这意味着早期的时间戳位数少,若当成秒级换算的话,谬之几十年!
7、浏览器上的代码游乐场[9]
如何在浏览器上实时执行代码片段?作者基于 WASI,开源了一个工具,可以在浏览器上执行 Python、PHP、Ruby、Lua、Javascript 和 SQLite 代码片段。
8、SQLite 的“database is locked”错误[10]
多线程环境中使用 SQLite,可能会出现“database is locked”错误,文章分析了两大原因(SQLite 等待锁超时、在事务读取后写入),介绍了对应的解决方案,特别提及 Django 本身提供的解决方案。
9、数据处理神器可不止 Pandas 哦,还有 Polars,全方位解析 Polars[11]
Polars 是基于 Rust + Arrow 实现的高性能 Python 数据处理库,这篇教程全方位介绍了 Polars 的相关知识。(附:另一篇同样主题的文章 Polars 实用教程[12])
10、用 Python 函数构建 HTML 组件[13]
如何在 Python 中实现类似 React 的组件?作者准备用纯 Python 函数生成 HTML,使用lxml
库来渲染,文章介绍了一些基本的尝试,验证可行性。
11、500 行 SQL 实现一个 GPT[14]
用 SQL 能否实现一个大语言模型呢?ChatGPT 说这超出了 SQL 的能力。但是,作者不这样认为!文章详细介绍了实现 GPT 所需的相关知识,最终用 500 行 SQL 实现了出来!(附:作者从 2010 年以来每年用 SQL 实现一件不可思议的事,比如 用 SQL 求解魔方[15] 、用 SQL 实现量子计算机模拟器[16] ……)
Python潮流周刊每 30 期为一季,第一季的精华内容已整理成一篇,方便你随时查看。在线访问地址:Python 潮流周刊第一季精华合集(1~30)[17]
1、niquests:使用 HTTP/3、HTTP/2,支持异步的 requests[18]
requests 库的直接替代,具有 HTTP/3、HTTP/2、多路复用连接、系统 CA、证书吊销、HTTPS/TLS/QUIC 或 UDP 上的 DNS、异步、DNSSEC,消除了 requests 的很多缺点。
2、slotscheck:确保你的\_\_slots\_\_正常工作[19]
Python 的 __slot__
变量可以减少实例内存,防止添加动态属性。但要正常工作,所有基类都要实现它。这个库可以检查它是否损坏、重叠、冗余,提供了 pre-commit 钩子。
3、panel:强大的数据探索和 Web 应用框架[20]
支持拖拽小部件、绘图、表格和其它可查看的 Python 对象组合到自定义分析工具和仪表板中,支持大量可视化工具,支持 ipywidgets 。(star 3.7K)
一边编辑,一边查看实时效果4、QAnything:基于任何东西的问答[21]
支持任意格式文件或数据库的本地知识库问答系统,可断网安装使用。一键安装部署,支持跨语种问答,支持选择多知识库问答。(star 1.9K)
5、Bert-VITS2-ext: 基于 Bert-VITS2 做的表情、动画测试[22]
TTS 同步产生脸部表情数据、声音到表情、生成身体动画。
6、weread-exporter: 将微信读书中的书籍导出成 epub、pdf、mobi 等格式[23]
通过 Hook Web 页面中的 Canvas 函数,获取文本及样式等信息,转换成 Markdown 格式,最终转换成 Epub、PDF 和 Mobi 格式。
7、leetcode-solution:用 Python 解各种 LeetCode 问题[24]
这个项目收录了 400 多道 LeetCode 题目和不同语言的答案。
8、CapsWriter-Offline: CapsWriter 离线版,好用的 PC 端语音输入工具[25]
一个 PC 端的语音输入、字幕转录工具,完全离线、无限时长、低延迟、高准确率、中英混输、自动阿拉伯数字、自动调整中英间隔。支持热词功能、日记功能、转录功能等。
9、surya:任何语言的准确行级文本检测和识别 (OCR)[26]
一个多语言文档 OCR 工具包,支持准确的行级文本检测。缺点是不适用于图片和手写文本。(star 3.6K)
10、GPT-SoVITS:1分钟的语音也可训练一个好的 TTS 模型[27]
强大的短镜头语音转换和文本转语音 WebUI,Zero-shot TTS、Few-shot TTS、跨语言支持、W ebUI 工具。(star 2.7K)
11、trt-llm-rag-windows:使用 TensorRTLLM 在 Windows 上创建 RAG 聊天机器人[28]
一个 Windows 上的 RAG 演示项目,基于 LLaMa 2 13B 模型、TensorRT-LLM 和 FAISS 向量搜索库。
12、LangGPT:让每个人都能成为提示词专家[29]
以结构化、模板化的方式编写高质量 ChatGPT prompt,克服普通 Prompt 创建时缺乏系统性、缺乏灵活性等缺点。(star 2.8K)
微信公众号[30]:除更新周刊外,还发布其它原创作品,并转载一些优质文章。(可加好友,可加读者交流群)
博客[31] 及 RSS[32]:我的独立博客,上面有历年原创/翻译的技术文章,以及从 2009 年以来的一些随笔。
邮件[33] 及 RSS[34]:在 Substack 上开通的频道,满足你通过邮件阅读时事通讯的诉求。
Github[35]:你可以获取本周刊的 Markdown 源文件,做任何想做的事!
Telegram[36]:除了发布周刊的通知外,我将它视为一个“副刊”,补充发布更加丰富的资讯。
Twitter[37]:我的关注列表里有大量 Python 相关的开发者与组织的账号。
参考资料
[1]
投稿: https://github.com/chinesehuazhou/python-weekly
[2]电报频道: https://t.me/pythontrendingweekly
[3]一年后的 Python 打包:回顾 2023 年 Python 的打包: https://chriswarrick.com/blog/2024/01/15/python-packaging-one-year-later/
[4]PyCon 2023(美国和澳大利亚)所有演讲视频: https://techtalksweekly.substack.com/p/all-pycon-2023-talks-sorted-by-views
[5]Python 的 Synchronized: https://thiagowfx.github.io/2024/01/synchronized-in-python/
[6]更快的 Python C 扩展的类型信息: https://bernsteinbear.com/blog/typed-c-extensions/
[7]通过示例比较 Kotlin 和 Python 中的协程: https://medium.com/@ms.carmen.alvarez/comparing-coroutines-by-example-in-kotlin-and-python-7e60746eae18
[8]Pydantic 处理 1970 年代时间的奇特问题: https://dev.arie.bovenberg.net/blog/pydantic-timestamps/
[9]浏览器上的代码游乐场: https://antonz.org/in-browser-code-playgrounds/
[10]SQLite 的“database is locked”错误: https://blog.pecar.me/django-sqlite-dblock
[11]数据处理神器可不止 Pandas 哦,还有 Polars,全方位解析 Polars: https://www.cnblogs.com/traditional/p/17959796
[12]Polars 实用教程: https://pbpython.com/polars-intro.html
[13]用 Python 函数构建 HTML 组件: https://ricardoanderegg.com/posts/python-build-html-components-lxml/
[14]500 行 SQL 实现一个 GPT: https://explainextended.com/2023/12/31/happy-new-year-15/
[15]用 SQL 求解魔方: https://explainextended.com/2022/12/31/happy-new-year-14/
[16]用 SQL 实现量子计算机模拟器: https://explainextended.com/2021/12/31/happy-new-year-13/
[17]Python 潮流周刊第一季精华合集(1~30): https://pythoncat.top/posts/2023-12-11-weekly
[18]niquests:使用 HTTP/3、HTTP/2,支持异步的 requests: https://github.com/jawah/niquests
[19]slotscheck:确保你的__slots__正常工作: https://github.com/ariebovenberg/slotscheck/
[20]panel:强大的数据探索和 Web 应用框架: https://github.com/holoviz/panel
[21]QAnything:基于任何东西的问答: https://github.com/netease-youdao/QAnything
[22]Bert-VITS2-ext: 基于 Bert-VITS2 做的表情、动画测试: https://github.com/see2023/Bert-VITS2-ext
[23]weread-exporter: 将微信读书中的书籍导出成 epub、pdf、mobi 等格式: https://github.com/drunkdream/weread-exporter
[24]leetcode-solution:用 Python 解各种 LeetCode 问题: https://github.com/hogan-tech/leetcode-solution
[25]CapsWriter-Offline: CapsWriter 离线版,好用的 PC 端语音输入工具: https://github.com/HaujetZhao/CapsWriter-Offline
[26]surya:任何语言的准确行级文本检测和识别 (OCR): https://github.com/VikParuchuri/surya
[27]GPT-SoVITS:1分钟的语音也可训练一个好的 TTS 模型: https://github.com/RVC-Boss/GPT-SoVITS
[28]trt-llm-rag-windows:使用 TensorRTLLM 在 Windows 上创建 RAG 聊天机器人: https://github.com/NVIDIA/trt-llm-rag-windows
[29]LangGPT:让每个人都能成为提示词专家: https://github.com/EmbraceAGI/LangGPT
[30]微信公众号: https://img.pythoncat.top/python_cat.jpg
[31]博客: https://pythoncat.top
[32]RSS: https://pythoncat.top/rss.xml
[33]邮件: https://pythoncat.substack.com
[34]RSS: https://pythoncat.substack.com/feed
[35]Github: https://github.com/chinesehuazhou/python-weekly
[36]Telegram: https://t.me/pythontrendingweekly
[37]Twitter: https://twitter.com/chinesehuazhou
如果你觉得本文有帮助
请慷慨分享和点赞,感谢啦!