---
title: 'Python 潮流周刊#24：no-GIL 提案正式被采纳了！'
pubDate: 2023-10-29
author: '豌豆花下猫'
---

你好，我是猫哥。这里每周分享优质的 Python、AI 及通用技术内容，大部分为英文。标题取自其中两则分享，不代表全部内容都是该主题，特此声明。

[微信](https://img.pythoncat.top/python_cat.jpg) | [博客](https://pythoncat.top) | [邮件](https://pythoncat.substack.com) | [Github](https://github.com/chinesehuazhou/python-weekly) | [Telegram](https://t.me/pythontrendingweekly) | [Twitter](https://twitter.com/chinesehuazhou) 

本周刊的源文件归档在 Github 上，已收获 777 star 好评，如果你也喜欢本周刊，就请给颗 star 支持一下吧：[https://github.com/chinesehuazhou/python-weekly](https://github.com/chinesehuazhou/python-weekly)

## 🦄文章&教程

1、[PEP-703 无 GIL CPython 的进展](https://lwn.net/Articles/947138/)

PEP-703 是 no-GIL 项目形成的提案，就在本周，Python 指导委员会宣布采纳了这个提案！这篇文章写于消息宣布的两周前，总结了过去一段时间里发生的技术思考和进展。（附：[PEP-703 的讨论](https://discuss.python.org/t/pep-703-making-the-global-interpreter-lock-optional/22606/123)）

2、[PEP-730 CPython 提供对 iOS 的官方支持](https://peps.python.org/pep-0730/)

这是一个新提案，建议 CPython 提供对 iOS 系统的 Tier 3 级支持。如果提案被采纳，则 Python 将会有更广泛的使用。 [BeeWare](https://beeware.org/) 和 [Kivy](https://kivy.org/) 是支持 iOS 的 Python APP 开发框架，说明了技术的可行性。

3、[Django 进阶：开发高级的功能](https://www.pythoncentral.io/the-next-step-in-django-development-advanced-features-to-consider/)

文章探讨在 Django 应用中集成一些高级的特性，例如：实现所见即所得编辑器、用户认证授权、实时通信功能、异步任务、集成 Elasticsearch 作全文搜索、自动化测试与持续集成。

4、[在 Python 中开发异步的任务队列](https://testdriven.io/blog/developing-an-asynchronous-task-queue-in-python/)

介绍了使用 multiprocessing.Pool、multiprocessing.Queue 和 Redis 实现简单的任务队列，实现基础的任务调度处理。 

5、[Flask、它的生态和向后兼容性](https://pgjones.dev/blog/flask-ecosystem-compatibility-2023/)

上期周刊分享了一则吐槽 Flask 向后兼容性不好的文章（见下），这篇是对它的回应，作者是 Flask 的维护者之一。

6、[继续关于 Flask 的讨论](https://blog.miguelgrinberg.com/post/some-more-to-talk-about-flask)

这是上周《[我们必须聊聊 Flask](https://blog.miguelgrinberg.com/post/we-have-to-talk-about-flask)》的后续，作者收到了一些正面和反面的回应，文章延续了之前的话题，并主要反驳了一些观点。

7、[介绍 rip - 快速而简约的 pip 实现](https://prefix.dev/blog/introducing_rip)

rip 是用 Rust 开发的 PyPI 包解析及安装库，即 Rust 版本 pip。它试图在 Conda 和 PyPI 间架起一座坚固的桥梁，文章介绍它为了克服这两者的主要区别（元数据提取、Wheel 文件元数据、依赖项规范）而做的一些工作。

8、[使用 Rust 将数据分析速度提高 180,000 倍](https://willcrichton.net/notes/k-corrset/)

如何使用 Rust 实现关键代码来提升 Python 程序的性能？文章从多个方面优化 k-CorrSet 问题的实现，得到了很高的速度提升。

9、[什么是 lambda 表达式？](https://www.pythonmorsels.com/lambda-expressions/)

什么是 lambda 表达式和 lambda 函数？lambda 函数与 Python 的其它函数有何不同？它有什么局限性、什么时候应该避免使用、通常使用在什么场景？

10、[手撸个视频翻译和配音工具玩玩 结果不太妙](https://juejin.cn/post/7293420609088798731)

视频翻译是对原始语言的视频处理后，显示为其它语言的字幕及配音。文章是一个低成本的尝试，技术栈：语音识别使用 openai-whisper 离线模型、文字翻译使用 Google 接口、文字合成语音使用 Microsoft Edge tts。

11、[掌握使用 FastAPI 进行集成测试](https://alex-jacobs.com/posts/fastapitests/)

集成测试是指将各个代码单元作为一个整体进行测试。文章介绍基于 FastAPI 的集成测试方法，包括如何模拟身份验证、如何模拟外部 API、如何模拟 MangoDB 相关操作、如何模拟 AWS S3。

12、[Python 代码转为 LATEX 公式工具](https://www.biaodianfu.com/latexify-python.html)

latexify_py 是一个 Google 开源的 Python 包，可以将 Python 源代码片段编译为相应的 LaTeX 表达式。文章介绍了它的使用方法，包括如何将 Python 函数转为公式、Latexify 参数设定、Latexify 生成伪代码。

🎁**Python潮流周刊**🎁已免费发布了 24 期，访问下方链接，即可查看全部内容：[https://pythoncat.top/tags/weekly](https://pythoncat.top/tags/weekly) 

如果你觉得周刊有价值，请表达小小心意，赞赏一下猫哥吧~~

![](https://img.pythoncat.top/support_pythoncat.png)

## 🐿️项目&资源

1、[celery：分布式任务队列](https://github.com/celery/celery)

Python 中比较成熟的任务队列库，支持 RabbitMQ、Redis 等中间件，很容易与主流 Web 框架集成。（star 22.4K）

2、[rq：简单的任务队列](https://github.com/rq/rq)

RQ（Redis Queue）是基于 Redis 的任务作业库，使用门槛低，支持排队、定时、重试等功能。（star 9.2K）

3、[huey：轻量级的任务队列](https://github.com/coleifer/huey)

简单轻量级的任务队列库，支持 Redis、SQLite、文件系统和内存存储，支持多进程、多线程或 Greenlet 任务执行模型。（star 4.7K）

4、[rip：快速解决和安装 Python 包（Rust 版 pip）](https://github.com/prefix-dev/rip)

用 Rust 实现的 pip，支持下载、解析和安装 PyPI 包，支持 wheel （部分支持），计划将 sdist 文件。

5、[Selenium-python-helium：Web 自动化库，让 Selenium 更好用](https://github.com/mherrmann/selenium-python-helium)

Selenium 是 Web 自动化的最优库之一，Helium 是在其基础上的封装，使 Web 自动化更为方便。除了高级 API，它还简化了 Web 驱动管理、支持与嵌套的 iFrame 中元素交互、支持隐式等待、支持显式等待。（star 3.6K）

6、[rendercv：用 YAML/JSON 文件创建 PDF 格式的简历](https://github.com/sinaatalay/rendercv)

它支持解析 YAML 及 JSON 文件的简历，创建 latex 文件，然后渲染成 PDF 格式。目前仅有一款主题。

7、[latexify_py：用 Python 代码生成 LaTeX 表达式](https://github.com/google/latexify_py)

可以将 Python 源码或 AST 编译为 LaTex，使用 IPython 来漂亮地打印编译的函数。（star 6.5K）

8、[localpilot：Mac 上的 Github Copilot](https://github.com/danielgross/localpilot)

在 Macbook 本机上使用的编程助手，配置及使用非常简易。（star 2.6K）

9、[annoy：C++/Python 的近似最近邻搜索](https://github.com/spotify/annoy)

用于搜索空间中靠近给定查询点的点，与其它同类库的最大不同是可使用静态文件作为索引，可实现跨进程共享索引。被 Spotify 用作音乐推荐。（star 12.1K）

10、[voyager：用于 Python 和 Java 的近似邻搜索库](https://github.com/spotify/voyager)

可对内存中的向量集合执行快速的近似最近邻搜索。也是出自 Spotify，每天被查询数亿次，扛得住海量用户的请求。召回率比 annoy 高。

11、[Test-Agent：国内首个测试行业大模型工具](https://github.com/codefuse-ai/Test-Agent)

它旨在构建测试领域的“智能体”，融合大模型和质量领域工程化技术，促进质量技术代系升级。开源了测试领域模型 TestGPT-7B，该模型以 CodeLlama-7B 为基座。

12、[waymax：用于自动驾驶研究的基于 JAX 的模拟器](https://github.com/waymo-research/waymax)

Waymo 是 Google 旗下的自动驾驶公司，Waymax 是其开源的轻量级、多智能体、基于 JAX 的自动驾驶模拟器，可轻松分发和部署在 GPU 和 TPU 等硬件加速器上。

## 🐢播客&视频

1、[Python 的代码生成：拆解 Jinja](https://www.youtube.com/watch?v=jXlR0Icvvh8)

Jinja 的主要作者 Armin Ronacher 在 2012 年的演讲视频，介绍了 Jinja 编译器基础结构的设计，为什么这样设计，以及不同版本的迭代发展过程。（附：[演讲的 PPT](https://speakerdeck.com/mitsuhiko/code-generation-in-python-dismantling-jinja)）

2、[让我们聊一聊模板](https://www.youtube.com/watch?v=rHmljD-oZrY)

Armin Ronacher 在 2014 年的演讲视频，比较了 Jinja 和 Django 的模板，分析它们产生截然不同设计的历史原因。（附：[演讲的 PPT](https://speakerdeck.com/mitsuhiko/lets-talk-about-templates)）

3、[JupyterCon 2023 视频 86 个](https://www.youtube.com/playlist?list=PL_1BH3ug7n1Ih_Yy2TmM7MZ2zogSLZvzE)

JupyterCon 是一个专注于 Jupyter 应用和工具的年度活动，包括数据科学、机器学习、科学计算、数据可视化、教育和科学研究等领域。

## 🐱赞助&支持

如果你喜欢周刊，请分享给其他需要的同学，让更多人可以从中受益～

如果你觉得周刊有价值，请随意[赞赏](https://img.pythoncat.top/wechat_code.png) 或 [买杯咖啡](https://www.buymeacoffee.com/pythoncat) 进行支持！

如果你想帮助周刊办得更好，欢迎向我们投稿或提出建议：[投稿/建议通道](https://github.com/chinesehuazhou/python-weekly/issues/new)

如果你是品牌方或广告主，欢迎私信我，洽谈赞助与合作事项。

## 🐼欢迎订阅

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