Python猫 2024年07月09日
Python 潮流周刊#34:Python 3.13 的 JIT 方案又新又好!
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本期 Python 潮流周刊分享了有关 Python 3.13 的 JIT 方案、Python 读取 Excel 文件的最快方法、Flask 教程、余弦相似度运算优化、AI 检测 AI 生成照片、Python 内置函数 max 问题、Appium 自动化测试、Django 实时消息应用、Python 数值数据类型、非阻塞的 Asyncio 日志记录、Instagram 技术栈、Google 设计的 Starlark 语言、数据工程的历史和现状等内容。同时还推荐了一些优秀的项目和资源,如 watchfiles、hy、pyapp、yarl、apispec、marshmallow、jake、docflow、auto_job__find__chatgpt__rpa、oshit、mixtral-offloading、RecoverPy、MobileVLM 等。

🤔 **Python 3.13 的 JIT 方案** Python 3.13 将引入一个 copy-and-patch JIT 编译器,该编译器尽可能地利用了 LLVM 生态的东西,包括 clang 用于编译、-o3 编译参数用于获取最大性能、llvm-objdump 和 llvm-readelf 用于二进制工具。这是一种新颖且高效的方案。文章还分析了主流的 Python JIT 编译器的优缺点,例如 PyPy、Numba 和 Cython。

🚀 **余弦相似度运算优化** 文章以余弦相似度为例,介绍了从纯 Python 版本到利用 AVX-512VNNI 技术优化后的性能提升过程。从纯 Python 版本开始,通过 Numpy、Scipy、C 语言、SIMD 内部函数、AVX-512 与 BMI2 结合、AVX-512FP16 以及 AVX-512VNNI 的逐步优化,最终实现了 2500 倍的性能提升。

💡 **Instagram 技术栈** 文章介绍了 Instagram 在 2010-2011 年从 0 到 1400 万用户期间使用到的技术栈和成功经验,包括使用 Python 和 Django 作为后端框架、使用 MySQL 作为数据库、使用 Memcached 和 Redis 作为缓存、使用 Amazon S3 作为存储等。

🌐 **Google 设计的 Starlark 语言** Google 设计出 Starlark 旨在取代 Python 作为构建描述语言,语法非常相似。文章说明了 Starlark 的设计原则,以及它与 Python 语言的诸多差异,例如它的布尔值不是整数、字符串不可迭代、没有“is”运算符、for/if 语句不允许在函数外部使用等。

📚 **数据工程的历史和现状** 文章介绍了数据工程的发展历程,从 SQL、维度建模、商业智能和大数据、MapReduce 和 Hadoop、云革命等阶段,概述了数据工程领域的发展趋势。

📦 **优秀项目和资源** 本期推荐了多个优秀的项目和资源,包括用于文件监听和代码重新加载的 watchfiles、嵌入在 Python 中的 Lisp 方言 hy、Python 应用的运行时安装器 pyapp、URL 解析工具 yarl、API 规范生成器 apispec、对象序列化库 marshmallow、单链接网站模板 jake、文档管理 API docflow、自动投简历助手 auto_job__find__chatgpt__rpa、命令行终端的 Hacker News 客户端 oshit、Mixtral-8x7B 模型推理工具 mixtral-offloading、文件恢复工具 RecoverPy、移动设备视觉语言助手 MobileVLM 等。

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

?文章&教程

1、简单聊聊 Python 3.13 的 JIT 方案
Python 3.13 将引入一个 copy-and-patch JIT 编译器,这项新功能尽可能地利用了 LLVM 生态的东西,编译器用 clang,编译参数开 -o3 获取最大的性能,二进制工具用 llvm-objdump 和 llvm-readelf,方案可谓是又新又好。(附:Python JIT 编译器 - 即时编译 ,分析了主流的 Python JIT 编译器的优缺点(如 PyPy、Numba 和 Cython))
2、在 Python 中读取 Excel 的最快方法
如何用 Python 读取 Excel 文件?文章从速度、类型、正确性三个维度,分别用 Pandas、Tablib、Openpyxl、LibreOffice、DuckDB 和 Calamine 读取 Excel,得出了性能上的排名。
3、Flask 教程:从头开始构建可扩展的 Web 项目
Flask 是强大且灵活的 Web 框架,这篇入门教程介绍了如何设置 Flask 项目、开发入门级项目、使用蓝图添加多页面、使用 Jinja 模板、存储静态文件等内容。
4、Python、C、汇编 - 提高 2500 倍余弦相似度运算
余弦相似度是机器学习和信息检索中广泛使用的指标,文章以它为例,介绍了一些底层优化方法,从纯 Python 版本开始,Numpy 导致性能变慢、Scipy 提升 2-5x、C 语言提升 200x、SIMD 内部函数提升 400x、结合 AVX-512 与 BMI2 后 747x、增加 AVX-512FP16 后升至 1260x、使用 AVX-512VNNI 提升 2521x。
5、使用 AI 检测 AI 生成的照片
Stable Diffusion XLMidjourney v6 等最新的 AI 模型可以生成极其逼真的图像,人眼已经越来越难以分辨真假。作者训练了一个能够检测 AI 生成图像的分类器,可获得 99% 准确率的结果。
6、Python 内置函数 max 有毛病
作者敏锐地发现 sum、all、any 和 math.prod 几个函数在入参为空列表时,都有恰当的默认值,然而 maxmin 函数却会报错!作者认为它应该等于负无穷大,你们怎么看?
7、App 自动化测试之 Appium 应用篇| Appium 常用 API 及操作
Appium 是常用的 Android UI 自动化测试工具,文章出自一个 Appium 自动化测试系列教程。
8、使用 Django 构建一个实时消息应用
如何给 Django 应用添加异步的实时事件?不使用 Redis,使用 Django 最新的异步特性。文章演示开发了一个极简的 Web 端即时通讯应用。
9、了解 Python 中的数值数据类型
Python 有哪些常用的数值数据类型?它们有哪些特点,CPython 内部是如何实现的?文章介绍了整数、浮点数和复数类型,以及 math、decimal 和 fractions 三个模块。(附:PEP-3141—数字的类型层级
10、非阻塞的 Asyncio 日志记录
如何在 asyncio 程序中实现非阻塞记录日志?文章介绍了如何用共享的 QueueQueueHandler 来记录日志,并使用 QueueListener 来存储日志。
11、Instagram 如何仅凭 3 名工程师实现用户规模 1400 万
Instagram 在 2010-2011 年从 0 到 1400 万用户,那时仅仅有 3 名工程师!他们用了什么技术栈,有什么成功经验可给我们借鉴的?文章介绍了它使用到的相关技术和实现方案。
12、Google 设计的类 Python 编程语言 Starlark
Google 设计出 Starlark 旨在取代 Python 作为构建描述语言,语法非常相似。这份文档说明了它的一些设计原则,以及跟 Python 语言的诸多差异,比如它的布尔值不是整数、字符串不可迭代、没有“is”运算符、for/if 语句不允许在函数外部使用,等等。
13、数据工程的历史和现状
文章出自正在连载的免费在线电子书《数据工程设计模式》(Data Engineering Design Patterns)。数据工程经历了 SQL、维度建模、商业智能和大数据、MapReduce 和 Hadoop、云革命等阶段。
?Python潮流周刊?每 30 期为一季,第一季的精华内容已整理成一篇,方便你随时查看。在线访问地址:Python 潮流周刊第一季精华合集(1~30)

?️项目&资源

1、watchfiles:简单快速的文件监听和代码重新加载
简单快速实现对文件的监听,使用 Rust 的Notify 库处理底层文件系统通知,支持同步和异步监听处理。(star 1.4K)
from watchfiles import watchfor changes in watch('./path/to/dir'):    print(changes)
2、hy:嵌入在 Python 中的 Lisp 方言
hy 是 Python 的一种替代语法,与 Python 相比,它提供了各种额外的功能、泛化和语法简化。与其它 Lisp 相比,它提供了对 Python 内置和第三方库的直接访问。(star 4.7K)
3、pyapp:Python 应用的运行时安装器
使用 Rust 开发的工具,可构建运行时自启动的 Python 应用程序,为每个平台构建独立的二进制包。
4、yarl:一个 URL 解析工具
提供了 URL 类,可便利解析和修改 URL,支持通过属性方式访问 url 的每个部分。(star 1K)
5、apispec:可插拔的 API 规范生成器,支持 OpenAPI 规范
自动生成 API 接口规范文档,支持 OpenAPI 规范(即 Swagger 规范),与框架无关,内置对marshmallow 的支持。(star 1.1K)
6、marshmallow:支持复杂对象与简单数据类型相互转换
简单的对象序列化库,与 ORM/ODM/框架无关,可用于验证输入数据、序列化与反序列化,提供有丰富的字段类型,支持多种数据格式。(star 6.8K)
7、jake:在 GitHub 上轻松创建和部署自己的单链接网站
单链接网站(one-link website)适合用作个人主页,这个网站模板使用 Github Pages 部署,让你轻松省力地构建美观的个人主页。
8、docflow:功能强大的文档管理 API,无缝上传、下载、组织、版本控制、共享
简化文档类的处理操作,支持身份验证和授权、列表权限控制、文档的增删改查、文档预览、版本控制等。
9、auto_job__find__chatgpt__rpa:基于 ChatGPT 的自动投简历助手
国人作品。利用 ChatGPT 根据你的简历和某招聘网站的职位描述,自动匹配和生成求职信息,自动发送给招聘人员。求职寒冬季,祝你好运!
10、oshit:放在命令行终端的 Hacker News
简化的 Hacker News 阅读客户端,没有登录、投票、发布等功能,支持查看用户和评论信息。
11、mixtral-offloading:在 Colab 或个人电脑上运行 Mixtral-8x7B 模型
实现了对 Mixtral-8x7B 模型的高效推理,需要大约 16 GB 的 VRAM 和 11 GB 的 RAM。(star 1.4K)
12、RecoverPy:以交互方式从终端查找和恢复已删除或覆盖的文件
文件的数据被覆盖或删除了,还能找回么?这是一个 Linux 上的文件&数据恢复工具,支持文本搜索,支持交互式操作。(star 1.1K)
13、MobileVLM:美团开源的移动设备视觉语言助手
在移动设备上运行的多模态视觉语言模型 (MMVLM),有 1.4B 和 2.7B 参数规模,在高通骁龙 888 CPU 和 NVIDIA Jeston Orin GPU 上分别获得每秒 21.5 个 token 和 65.3 个 token 的优秀性能。

?播客&视频

1、 捕蛇者说 Ep 44. 与 Tualatrix 聊聊独立开发使用的技术栈
独立开发者怎么做技术选型?为什么图拉鼎会用 Python 作为自己项目的后端语言?(附:两年前的另一期播客 ByteTalk 3. 跟图拉鼎聊聊独立开发者的那些事
2、给 Pythonistas 的 Rust 编程入门教程
以面向 Python 开发者的视角来对比和学习 Rust 编程,介绍了主要特性的差异(比如 Python 的类和 Rust 的 struct)。

?欢迎订阅

本周刊已持续连载一年,更新内容接近 11 万字。希望周刊能成为你高质量的信息筛选器,成为你开阔视野的一扇明窗。目前已开通付费专栏,欢迎你来订阅:https://xiaobot.net/p/python_weekly

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

Python 人工智能 数据工程 Web 开发 机器学习 编程语言 技术周刊
相关文章