Python 潮流周刊#24:no-GIL 提案正式被采纳了!
你好,我是猫哥。这里每周分享优质的 Python、AI 及通用技术内容,大部分为英文。标题取自其中两则分享,不代表全部内容都是该主题,特此声明。
微信 | 博客 | 邮件 | Github | Telegram | Twitter
本周刊的源文件归档在 Github 上,已收获 777 star 好评,如果你也喜欢本周刊,就请给颗 star 支持一下吧:https://github.com/chinesehuazhou/python-weekly
文章&教程
PEP-703 是 no-GIL 项目形成的提案,就在本周,Python 指导委员会宣布采纳了这个提案!这篇文章写于消息宣布的两周前,总结了过去一段时间里发生的技术思考和进展。(附:PEP-703 的讨论)
2、PEP-730 CPython 提供对 iOS 的官方支持
这是一个新提案,建议 CPython 提供对 iOS 系统的 Tier 3 级支持。如果提案被采纳,则 Python 将会有更广泛的使用。 BeeWare 和 Kivy 是支持 iOS 的 Python APP 开发框架,说明了技术的可行性。
文章探讨在 Django 应用中集成一些高级的特性,例如:实现所见即所得编辑器、用户认证授权、实时通信功能、异步任务、集成 Elasticsearch 作全文搜索、自动化测试与持续集成。
介绍了使用 multiprocessing.Pool、multiprocessing.Queue 和 Redis 实现简单的任务队列,实现基础的任务调度处理。
上期周刊分享了一则吐槽 Flask 向后兼容性不好的文章(见下),这篇是对它的回应,作者是 Flask 的维护者之一。
这是上周《我们必须聊聊 Flask》的后续,作者收到了一些正面和反面的回应,文章延续了之前的话题,并主要反驳了一些观点。
rip 是用 Rust 开发的 PyPI 包解析及安装库,即 Rust 版本 pip。它试图在 Conda 和 PyPI 间架起一座坚固的桥梁,文章介绍它为了克服这两者的主要区别(元数据提取、Wheel 文件元数据、依赖项规范)而做的一些工作。
如何使用 Rust 实现关键代码来提升 Python 程序的性能?文章从多个方面优化 k-CorrSet 问题的实现,得到了很高的速度提升。
什么是 lambda 表达式和 lambda 函数?lambda 函数与 Python 的其它函数有何不同?它有什么局限性、什么时候应该避免使用、通常使用在什么场景?
视频翻译是对原始语言的视频处理后,显示为其它语言的字幕及配音。文章是一个低成本的尝试,技术栈:语音识别使用 openai-whisper 离线模型、文字翻译使用 Google 接口、文字合成语音使用 Microsoft Edge tts。
集成测试是指将各个代码单元作为一个整体进行测试。文章介绍基于 FastAPI 的集成测试方法,包括如何模拟身份验证、如何模拟外部 API、如何模拟 MangoDB 相关操作、如何模拟 AWS S3。
latexify_py 是一个 Google 开源的 Python 包,可以将 Python 源代码片段编译为相应的 LaTeX 表达式。文章介绍了它的使用方法,包括如何将 Python 函数转为公式、Latexify 参数设定、Latexify 生成伪代码。
Python潮流周刊已免费发布了 24 期,访问下方链接,即可查看全部内容:https://pythoncat.top/tags/weekly
️项目&资源
Python 中比较成熟的任务队列库,支持 RabbitMQ、Redis 等中间件,很容易与主流 Web 框架集成。(star 22.4K)
RQ(Redis Queue)是基于 Redis 的任务作业库,使用门槛低,支持排队、定时、重试等功能。(star 9.2K)
简单轻量级的任务队列库,支持 Redis、SQLite、文件系统和内存存储,支持多进程、多线程或 Greenlet 任务执行模型。(star 4.7K)
4、rip:快速解决和安装 Python 包(Rust 版 pip)
用 Rust 实现的 pip,支持下载、解析和安装 PyPI 包,支持 wheel (部分支持),计划将 sdist 文件。
5、Selenium-python-helium:Web 自动化库,让 Selenium 更好用
Selenium 是 Web 自动化的最优库之一,Helium 是在其基础上的封装,使 Web 自动化更为方便。除了高级 API,它还简化了 Web 驱动管理、支持与嵌套的 iFrame 中元素交互、支持隐式等待、支持显式等待。(star 3.6K)
6、rendercv:用 YAML/JSON 文件创建 PDF 格式的简历
它支持解析 YAML 及 JSON 文件的简历,创建 latex 文件,然后渲染成 PDF 格式。目前仅有一款主题。
7、latexify_py:用 Python 代码生成 LaTeX 表达式
可以将 Python 源码或 AST 编译为 LaTex,使用 IPython 来漂亮地打印编译的函数。(star 6.5K)
8、localpilot:Mac 上的 Github Copilot
在 Macbook 本机上使用的编程助手,配置及使用非常简易。(star 2.6K)
用于搜索空间中靠近给定查询点的点,与其它同类库的最大不同是可使用静态文件作为索引,可实现跨进程共享索引。被 Spotify 用作音乐推荐。(star 12.1K)
10、voyager:用于 Python 和 Java 的近似邻搜索库
可对内存中的向量集合执行快速的近似最近邻搜索。也是出自 Spotify,每天被查询数亿次,扛得住海量用户的请求。召回率比 annoy 高。
它旨在构建测试领域的“智能体”,融合大模型和质量领域工程化技术,促进质量技术代系升级。开源了测试领域模型 TestGPT-7B,该模型以 CodeLlama-7B 为基座。
12、waymax:用于自动驾驶研究的基于 JAX 的模拟器
Waymo 是 Google 旗下的自动驾驶公司,Waymax 是其开源的轻量级、多智能体、基于 JAX 的自动驾驶模拟器,可轻松分发和部署在 GPU 和 TPU 等硬件加速器上。
播客&视频
Jinja 的主要作者 Armin Ronacher 在 2012 年的演讲视频,介绍了 Jinja 编译器基础结构的设计,为什么这样设计,以及不同版本的迭代发展过程。(附:演讲的 PPT)
2、让我们聊一聊模板
Armin Ronacher 在 2014 年的演讲视频,比较了 Jinja 和 Django 的模板,分析它们产生截然不同设计的历史原因。(附:演讲的 PPT)
JupyterCon 是一个专注于 Jupyter 应用和工具的年度活动,包括数据科学、机器学习、科学计算、数据可视化、教育和科学研究等领域。
赞助&支持
如果你喜欢周刊,请分享给其他需要的同学,让更多人可以从中受益~
如果你想帮助周刊办得更好,欢迎向我们投稿或提出建议:投稿/建议通道
如果你是品牌方或广告主,欢迎私信我,洽谈赞助与合作事项。
欢迎订阅
- 微信公众号:除更新周刊外,还发布其它原创作品,并转载一些优质文章。(可加好友,可加读者交流群)
- 博客 及 RSS:我的独立博客,上面有历年原创/翻译的技术文章,以及从 2009 年以来的一些随笔。
- Github:你可以获取本周刊的 Markdown 源文件,做任何想做的事!
- 邮件:在 Substack 上开通的频道,满足你通过邮件阅读时事通讯的诉求。
- Telegram:除了发布周刊的通知外,我将它视为一个“副刊”,补充发布更加丰富的资讯。
- Twitter:我的关注列表里有大量 Python 相关的开发者与组织的账号。
Python 潮流周刊#24:no-GIL 提案正式被采纳了!的更多相关文章
- Python 进程线程协程 GIL 闭包 与高阶函数(五)
Python 进程线程协程 GIL 闭包 与高阶函数(五) 1 GIL线程全局锁 线程全局锁(Global Interpreter Lock),即Python为了保证线程安全而采取的独立线程运行的 ...
- 第十五章、Python多线程之信号量和GIL
目录 第十五章.Python多线程之信号量和GIL 1. 信号量(Semaphore) 2. GIL 说明: 第十五章.Python多线程之信号量和GIL 1. 信号量(Semaphore) 信号量用 ...
- Python系列之 - 锁(GIL,Lock,Rlock,Event,信号量)
python 的解释器,有很多种,但市场占有率99.9%的都是基于c语言编写的CPython. 在这个解释器里规定了GIL. In CPython, the global interpreter l ...
- 我的Python成长之路---第八天---Python基础(24)---2016年3月5日(晴)
多线程编程 什么是多线程,线程是操作系统能够进行运算调度的最小单位.他包含在进程之中,是进程中的实际运作单位.线程是进程中一个单顺序的空值六,一个进程可以并发多个线程,每个线程可以并行处理不同的任务. ...
- python实现算24的算法
1.介绍 给定4个整数,数字范围在1-13之间,任意使用 + - * / ( ) ,构造出一个表达式,使得最终结果为24,这就是常见的算24的游戏.本文介绍用Python语言实现的两种方式.2.实现思 ...
- python多线程、多进程以及GIL
多线程 使用threading模块创建线程 传入一个函数 这种方式是最基本的,即调用threading中的Thread类的构造函数,然后指定参数target=func,再使用返回的Thread的实例调 ...
- python全局解释器锁(GIL)
文章作者:卢钧轶(cenalulu) 本文原文地址:http://cenalulu.github.io/python/gil-in-python/ ,对文章做了适当的修改,加入了一些自己的理解. CP ...
- Python Web学习笔记之GIL机制下的鸡肋多线程
为什么有人会说 Python 多线程是鸡肋?知乎上有人提出这样一个问题,在我们常识中,多进程.多线程都是通过并发的方式充分利用硬件资源提高程序的运行效率,怎么在 Python 中反而成了鸡肋? 有同学 ...
- python网络编程--线程(锁,GIL锁,守护线程)
1.线程 1.进程与线程 进程有很多优点,它提供了多道编程,让我们感觉我们每个人都拥有自己的CPU和其他资源,可以提高计算机的利用率.很多人就不理解了,既然进程这么优秀,为什么还要线程呢?其实,仔细观 ...
- python+pyqt5实现24点小游戏
本文实例为大家分享了python实现24点游戏的具体代码,供大家参考,具体内容如下 描述:一副牌中A.J.Q.K可以当成是1.11.12.13.任意抽取4张牌,用加.减.乘.除(可加括号)把牌面上的数 ...
随机推荐
- 一张表实现类某音的视频"评论回复"功能
前言 现如今,不管是哪种类型的应用,评论区都少不了.从工具类的到媒体信息流类的,评论留言都是最基本的互动环节.比如抖音短视频下,针对视频每个用户都可以发表自己的观点:而针对用户的评论,其他的用户又可 ...
- Linux 如何删除乱码的文件
事情是这样,服务器很多人在使用,以前的离职同事留了一大堆不知道是什么东西. 那些文件看不了,又删不掉,非常碍眼. 我搜索了挺多资料,没有一篇文章能真的解决问题(感觉都是抄来抄去的). 用 SFTP 工 ...
- 2.融合进阶:Stacking与Blending
1 堆叠法Stacking 1.1 堆叠法的基本思想 堆叠法Stacking是近年来模型融合领域最为热门的方法,它不仅是竞赛冠军队最常采用的融合方法之一,也是工业中实际落地人工智能时会考虑的方案之一. ...
- 分布式TCC事务相关问题
TCC分别是Try,Confirm,Cancel,分为三阶段. 第一阶段Try:业务检查及资源预留,尝试事务操作但不提交. 第二阶段Confirm:事务操作提交. 第三阶段Cancel:如果Try阶段 ...
- Kettle实例(获取Token并带入请求接口拉取数据到本地)
背景 近期工作中遇到许多需要协同的表单文档被放到云文档,那么我们本地做数据分析就需要先抽取云文档实时数据到本地数据库,根据接口文档我们需要先获取Token,再将返回值带到接口中发起请求拉取数据,因为在 ...
- ChatGPT大师班 从入门到精通 视频教程 完整版
本内容收集于:AIGC从入门到精通教程汇总 课程截图 课程目录 01.先导课:工具篇----ChatGPT平替解决方案及汉化教程.mp4 02.第1课:AIGC时代的到来.mp4 03.第2课:认识C ...
- 推荐一个react脚手架工具
今天介绍一个react脚手架,react-cli, 可以说是 vue-cli 的外表,react的心! 安装步骤: npm install -g sao sao yang302/react-cli n ...
- Mac SpringBoot项目 Gradle 7.3 转 Maven 手把手教学,包学会~
导读 最近我手上有个使用Gradle构建的项目,国内使用Gradle的人相对较少.而且我也觉得Gradle的依赖管理方式有些复杂,让我感到有些困惑.因此,我想将项目转换为Maven构建方式.Maven ...
- 关闭k8s的pod时减小对服务的影响
在应用程序的整个生命周期中,正在运行的 pod 会由于多种原因而终止.在某些情况下,Kubernetes 会因用户输入(例如更新或删除 Deployment 时)而终止 pod.在其他情况下,Kube ...
- 当开源项目 Issue 遇到了 DevChat
目录 1. 概述 2. Bug 分析与复现 3. Bug 定位与修复 4. 代码测试 5. 文档更新 6. 提交 Commit 7. 总结 1. 概述 没错,又有人给 GoPool 项目提 issue ...