Skip to content

Latest commit

 

History

History
120 lines (65 loc) · 8.99 KB

2024-01-20-weekly.md

File metadata and controls

120 lines (65 loc) · 8.99 KB
title description pubDate author
Python 潮流周刊#36:Python 打包生态依然不乐观
本期周刊分享了 12 篇文章,12 个开源项目
2024-01-20
豌豆花下猫

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

🦄文章&教程

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

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

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

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

PyCon 2023 视频播放量

3、Python 的 Synchronized

Java 中用synchronized 关键字可以保证变量是线程安全的,Python 中有什么东西可以达到相同效果么?文章介绍了threading 模块的 Lock + 上下文管理器 + 装饰器的实现方案。

4、更快的 Python C 扩展的类型信息

PyPy 是一个 Python 解释器,它的 C API 兼容层存在一些性能问题,作者正在研究使 PyPy 的 C API 变快方法,文章介绍了他们所做的工作。

5、通过示例比较 Kotlin 和 Python 中的协程

作者在用 Python 和 Kotlin 开发时,都接触了协程,因此写了几篇文章来比较它们的用法、分析它们的细节和工作原理,涉及文件读写、HTTP 请求、序列和生成器,可以加深你对协程的理解。

6、Pydantic 处理 1970 年代时间的奇特问题

Pydantic 在处理 Unix 时间戳时会猜测是以秒还是毫秒为单位,但这遇到 1970 年的时间就有问题啦!众所周知,计算机世界的时间戳从 1970-1-1 开始(UNIX 纪元),这意味着早期的时间戳位数少,若当成秒级换算的话,谬之几十年!

7、浏览器上的代码游乐场

如何在浏览器上实时执行代码片段?作者基于 WASI,开源了一个工具,可以在浏览器上执行 Python、PHP、Ruby、Lua、Javascript 和 SQLite 代码片段。

8、SQLite 的“database is locked”错误

多线程环境中使用 SQLite,可能会出现“database is locked”错误,文章分析了两大原因(SQLite 等待锁超时、在事务读取后写入),介绍了对应的解决方案,特别提及 Django 本身提供的解决方案。

9、数据处理神器可不止 Pandas 哦,还有 Polars,全方位解析 Polars

Polars 是基于 Rust + Arrow 实现的高性能 Python 数据处理库,这篇教程全方位介绍了 Polars 的相关知识。(附:另一篇同样主题的文章 Polars 实用教程

10、用 Python 函数构建 HTML 组件

如何在 Python 中实现类似 React 的组件?作者准备用纯 Python 函数生成 HTML,使用lxml 库来渲染,文章介绍了一些基本的尝试,验证可行性。

11、500 行 SQL 实现一个 GPT

用 SQL 能否实现一个大语言模型呢?ChatGPT 说这超出了 SQL 的能力。但是,作者不这样认为!文章详细介绍了实现 GPT 所需的相关知识,最终用 500 行 SQL 实现了出来!(附:作者从 2010 年以来每年用 SQL 实现一件不可思议的事,比如 用 SQL 求解魔方用 SQL 实现量子计算机模拟器 ……)

🎁Python潮流周刊🎁每 30 期为一季,第一季的精华内容已整理成一篇,方便你随时查看。在线访问地址:Python 潮流周刊第一季精华合集(1~30)

🐿️项目&资源

1、niquests:使用 HTTP/3、HTTP/2,支持异步的 requests

requests 库的直接替代,具有 HTTP/3、HTTP/2、多路复用连接、系统 CA、证书吊销、HTTPS/TLS/QUIC 或 UDP 上的 DNS、异步、DNSSEC,消除了 requests 的很多缺点。

2、slotscheck:确保你的__slots__正常工作

Python 的 __slot__ 变量可以减少实例内存,防止添加动态属性。但要正常工作,所有基类都要实现它。这个库可以检查它是否损坏、重叠、冗余,提供了 pre-commit 钩子。

3、panel:强大的数据探索和 Web 应用框架

支持拖拽小部件、绘图、表格和其它可查看的 Python 对象组合到自定义分析工具和仪表板中,支持大量可视化工具,支持 ipywidgets 。(star 3.7K)

一边编辑,一边查看实时效果

4、QAnything:基于任何东西的问答

支持任意格式文件或数据库的本地知识库问答系统,可断网安装使用。一键安装部署,支持跨语种问答,支持选择多知识库问答。(star 1.9K)

5、Bert-VITS2-ext: 基于 Bert-VITS2 做的表情、动画测试

TTS 同步产生脸部表情数据、声音到表情、生成身体动画。

6、weread-exporter: 将微信读书中的书籍导出成 epub、pdf、mobi 等格式

通过 Hook Web 页面中的 Canvas 函数,获取文本及样式等信息,转换成 Markdown 格式,最终转换成 Epub、PDF 和 Mobi 格式。

7、leetcode-solution:用 Python 解各种 LeetCode 问题

这个项目收录了 400 多道 LeetCode 题目和不同语言的答案。

8、CapsWriter-Offline: CapsWriter 离线版,好用的 PC 端语音输入工具

一个 PC 端的语音输入、字幕转录工具,完全离线、无限时长、低延迟、高准确率、中英混输、自动阿拉伯数字、自动调整中英间隔。支持热词功能、日记功能、转录功能等。

9、surya:任何语言的准确行级文本检测和识别 (OCR)

一个多语言文档 OCR 工具包,支持准确的行级文本检测。缺点是不适用于图片和手写文本。(star 3.6K)

10、GPT-SoVITS:1分钟的语音也可训练一个好的 TTS 模型

强大的短镜头语音转换和文本转语音 WebUI,Zero-shot TTS、Few-shot TTS、跨语言支持、W ebUI 工具。(star 2.7K)

11、trt-llm-rag-windows:使用 TensorRTLLM 在 Windows 上创建 RAG 聊天机器人

一个 Windows 上的 RAG 演示项目,基于 LLaMa 2 13B 模型、TensorRT-LLM 和 FAISS 向量搜索库。

12、LangGPT:让每个人都能成为提示词专家

以结构化、模板化的方式编写高质量 ChatGPT prompt,克服普通 Prompt 创建时缺乏系统性、缺乏灵活性等缺点。(star 2.8K)

🐼欢迎订阅

  • 微信公众号:除更新周刊外,还发布其它原创作品,并转载一些优质文章。(可加好友,可加读者交流群)
  • 博客RSS:我的独立博客,上面有历年原创/翻译的技术文章,以及从 2009 年以来的一些随笔。
  • 邮件RSS:在 Substack 上开通的频道,满足你通过邮件阅读时事通讯的诉求。
  • Github:你可以获取本周刊的 Markdown 源文件,做任何想做的事!
  • Telegram:除了发布周刊的通知外,我将它视为一个“副刊”,补充发布更加丰富的资讯。
  • Twitter:我的关注列表里有大量 Python 相关的开发者与组织的账号。