Python 潮流周刊#36:Python 打包生态依然不乐观

△△请给“Python猫”加星标 ,以免错过文章推送

Python 潮流周刊#36:Python 打包生态依然不乐观_第1张图片

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

文章&教程

1、一年后的 Python 打包:回顾 2023 年 Python 的打包[3]

作者一年前吐槽了 Python 打包的悲惨状况,一年后再看,有什么改善么?还是变得更糟糕了呢?文章讨论了社区里主流的打包工具、PEP 标准及其落实情况,尽管有不少新东西,但看起来还是很黯淡。

2、PyCon 2023(美国和澳大利亚)所有演讲视频[4]

文章整理了去年 PyCon US 和 Python AU 的 243 个视频,按照 Youtube 播放数排序。都不算多,而且第一名和第二名的差距非常之大。

Python 潮流周刊#36:Python 打包生态依然不乐观_第2张图片 PyCon 2023 视频播放量

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

f1a38d14f34677c62ce5be0326c5925b.gif

如果你觉得本文有帮助

请慷慨分享点赞,感谢啦

你可能感兴趣的:(python,开发语言)