你好,我是猫哥。这里记录每周值得分享的 Python 及通用技术内容,部分为英文,已在小标题注明。(标题取自其中一则分享,不代表全部内容都是该主题,特此声明。)
首发于我的博客,pythoncat.top/posts/2023-…
🦄文章&教程
1、CPython 贡献日记:Python 3.12 有什么?
文章出自群友@孙孟越,介绍了 Python 3.12 中他深度参与的几个大更新,比如 PEP-701 定型 f-字符串的句法、PEP-688 给 Python Buffer Protocol 暴露 Python 接口、PEP-695 类型参数语法,等等。另外,他在前一篇《CPython 贡献日记》中介绍了给开源社区做贡献的相关知识,比如提 PR 的小技巧、提/解决 Issue 的小技巧,等等。(你也想给 Python 贡献代码么?请参考:Python Developer’s Guide)
文章介绍了目前流行的 67 个工具,包括大语言模型、搜索引擎、办公、内容生成、精神需求、提示词学习等方向,它还梳理了下面这张思维导图:
3、我买了本豆瓣 9.6 分的 Python 书,发现里面每 5 页一个错误?!
文章从一本 Python 入门书籍中找出了 30 个有代表性的错误,并给出了“离谱程度”评分。作者批判性阅读了那本书,同理,读者们也应该批判性阅读这篇文章,因为它说得也并不都对。(@TheFry 投稿)
4、Sketch of a Post-ORM (英)
通常我们使用纯 SQL 或者 ORM 框架来操作数据库,作者比较了这两种方案,指出了它们的诸多缺陷,然后提出了一种新的技术设想。作者从 8 个方面介绍了自己的思路,包括迁移优先、声明式迁移、跨语言移植、更好的 SQL,等等。作者还演示了一个工作流以及 Python 代码示例。
5、Python 中运行 Shell 命令的正确做法 (英)
作者先介绍了 Python 与操作系统交互的一些常用库,比如 pathlib、tempfile、shutil、os、subprocess 等等,最后再介绍了他最为推荐的 sh 库的相关用法。这个库的方法对熟悉 shell 命令的同学非常友好。
6、如何使用 async 升级 Flask 程序 (英)
文章使用 Locust 作负载测试,简单演示了将同步的 Flask 程序修改为异步后,性能数据上的变化。
7、提议给 Python 添加一个结构语法 (英)
核心开发者 Brett Cannon 的博客介绍了他的思考,提议增加一个struct
关键字,用于更方便地创建数据类,类似于 C、Rust 与 Go 的结构语法。文中介绍了他的目标以及这个关键字的实现原理,目前在收集意见阶段,未来不排除会提成一个 PEP。
出自《从 1 到 ∞ 精通 Python》系列,已包含 17 篇文章。作者参考了《Python 源码剖析》的分析方法及结论,深度探析了 Python 解释器源码,讲解 Python 重要特性的实现原理。
9、2023 年 39 个顶级 Python 框架 (英)
文章梳理介绍了 39 个用于开发及测试的 Python 框架,内容很长,介绍的范围很全面。
10、果蔬识别系统:Python+Django+TensorFlow+卷积神经网络算法
使用 Python 作为主语言,基于 TensorFlow 框架,通过对数据集进行训练,得到了一个识别精度较高的模型。基于 Django 框架,开发了网页端操作平台,支持用户上传图片作识别。
11、使用 Kivy 库进行 GUI 开发 (英)
这是一篇入门教程。Kivy 是一个用于开发图形用户界面的库,支持桌面的跨平台开发,也支持为移动设备创建多点触控的程序。
12、了解 CPU 有助于提升 Numba 和 NumPy 代码的速度 (英)
当需要加快 NumPy 速度或减少其运行内存时,通常使用即时编译器 Numba。文章针对现代 CPU 的特点来优化 代码,将一个去除图像中的噪点程序的耗时从 48 ms 降到了 2 ms。
13、当字节码咬人时:谁检查 Python 文件编译后的内容? (英)
ReversingLabs 研究团队发现了一种针对 PyPI 的新型攻击,它使用编译后的 Python 代码来规避检测——可能是第一个利用 PYC 文件直接执行的攻击。
14、GPT 是如何工作的:200 行 Python 代码实现一个极简 GPT
这是一篇译文,原文作者是 OpenAI 的创始成员 Andrej Karpathy。文章使用 PyTorch 实现了一个极简 GPT,让读者对其内部工作机制有个直观理解。
15、600 行 Python 代码实现两个 Transformer(文本分类+文本生成)
这也是一篇译文,原文作者是阿姆斯特丹自由大学的助理教授。原文最早写于 2019 年,那时大语言模型还没有如今火爆。在文章末尾,作者希望 transformer 扩展到其它领域,因为它有很强的通用性。
🐿️项目&资源
NeoDB 是一个用 Django 写的开源项目,也是一个联邦宇宙书影音游戏标注平台,可简单理解成 Web3 的开源的无审查的豆瓣,但支持标记的内容比豆瓣多得多。(这个库是在@laike9m 的博客看到的。以及非常感谢他在 Twitter 上推荐了本周刊!!)
2、JupyterLab 4.0 已发布 (英)
JupyterLab 4.0 主要的新功能有:性能更快、升级的文本编辑器、新的扩展管理器、UI 改进,等等。
3、pystack (英)
pstack 是 Linux 系统上常用的命令行工具,用于显示一个进程的函数调用栈,可诊断进程卡死、死锁等问题,以及分析进程的性能瓶颈。pystack 是用 Python 写成的类 pstack 库。值得一提的是,它竟然还可以显示线程是否持有、是否在等待或正在释放 GIL。
这是一个基于 ChatGPT 的 Python 在线学习平台,内置了 AI 助手以及在线代码运行模块,允许你随时修改示例代码,一键运行,一键查错。(@Stanaaa 投稿)
5、M3E 模型
M3E 是一个中文开源的 Embedding 模型,使用千万级 (2200w+) 的中文句对数据集进行训练,在文本分类和文本检索的任务上都超越了 openai-ada-002 模型。(@王宇昕投稿)
6、reactpy:Python 的 React (英)
ReactPy 是一个库,用于在 Python 中构建用户界面,且不使用 Javascript。它的接口类似于 ReactJS 中的组件,可供没有 Web 开发经验的人使用。
基于 Python + Vue3.js 技术栈实现的域名和 SSL 证书监测平台,核心功能:到期自动邮件提醒。
一个可视化爬虫软件,只需在网页上选择想爬的内容,并根据提示框操作即可完成爬虫设计和执行。也支持以命令行方式执行,可以方便地嵌入到其他系统中。这个项目源于原作者的浙江大学硕士论文,已获得国家发明专利,相关资料可在仓库查看。
9、text-to-video-synthesis-colab:文本生成视频的模型 (英)
一个开源的文本生成视频模型,整体模型参数约 17 亿,使用英文输入。放出来的演示视频非常惊艳。
10、segment-geospatial:使用 SAM 分割地理空间数据 (英)
SAM 即“分割任意物体模型”(Segment Anything Model),是计算机视觉领域中非常有用和先进的模型,用于需要精确识别和分割任意物体的应用场景。这个项目使用它来分割地理空间数据。
11、traceback_with_variables:Python 回溯(错误消息)打印变量 (英)
该项目可以在 Python 的回溯信息中添加变量。通过记录日志或打印彩色的变量上下文信息,方便调试异常的原因,并显示堆栈跟踪中每个帧的变量值。
🐢播客&视频
1、当你用Python3.12的时候,或许就跑了我写的代码呢!
视频来自 B 站@码农高天,他从 3 月份起,有 20 几个 pr 已合入 Python 3.12。这期视频详细介绍了他做出的几个贡献,主要有完善 pdb 文档、修复了几个 bug、引入 convenience variable 特性,等等。(作者在第一次 pr 被合入后,录了一期《我给Python修了个bug!从今天起,也算是Python开发者了?》)
2、PyCon US 2023 - YouTube (英)
今年 PyCon US 活动的视频已经可以看了,共用 142 个视频!PyCon 是全球性的最大的 Python 开发者会议之一,由 PSF 主办,通常在 PyCon 活动期间会举行“Python 语言峰会”,今年的峰会议题详见《Python潮流周刊#4:Python 2023 语言峰会》。
3、PyCascades - 2023 视频 (英)
2023 年 PyCascades 活动上的视频在上个月发布了,有 20 几个视频。PyCascades 是一个专注于 Python 编程语言的会议,通常在北美地区举行,每年一次。它类似于 PyCon,但是由独立的组织者和志愿者自发组织,规模更小。
🐱赞助&支持
内容创作要花费大量的时间和精力,如果你觉得有帮助,请随意赞赏、买杯咖啡或在爱发电进行支持!如果你喜欢本周刊,请转发分享给其他需要的同学,让更多人可以从中受益~
诚邀赞助者,帮助本周刊免费且可持续发布,欢迎通过私信联系。
🐼关于周刊
Python 潮流周刊,由豌豆花下猫主理,精心筛选国内外的 250+ 信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进 Python 技术,并增长职业和副业的收入。
订阅方式:Python猫 (可加群)| RSS | 邮件 | Github | Telegram | Twitter