Python 潮流周刊#26：requests3 的现状
Tags: webdev, programming, tutorial, python
Published: 2023-11-12 01:13:09

你好，我是猫哥。这里每周分享优质的 Python、AI 及通用技术内容，大部分为英文。本周刊开源，欢迎[投稿](https://github.com/chinesehuazhou/python-weekly "投稿")。另有[电报频道](https://t.me/pythontrendingweekly "电报频道")作为副刊，补充发布更加丰富的资讯。

## 🐱品牌赞助

本周刊由“**Python猫**”出品，这是一个以 Python 技术科普和分享为主的科技自媒体，欢迎关注同名公众号。品牌合作请私信联系。

## 🦄文章&教程

1、[Kenneth Reitz：迟来的道歉，以及 requests 3 的进展](https://kennethreitz.org/essays/why-im-not-collaborating-with-kenneth-reitz "Kenneth Reitz：迟来的道歉，以及 requests 3 的进展")

2019 年时 requests 3 的筹款闹出了不小的风波，后来似乎没什么消息。现在作者发了一篇道歉文，看来项目是要重启了！文中列举了目前已经完成的一些事情，包括给所有公开接口加上了类型提示、重构所有命名空间和调整成兼容异步编程等。（附：筹款风波之《[Why I'm not collaborating with Kenneth Reitz](https://vorpus.org/blog/why-im-not-collaborating-with-kenneth-reitz/ "Why I'm not collaborating with Kenneth Reitz")》）

2、[grequests：异步的 HTTP 请求](https://coderslegacy.com/python-grequests-making-asynchronous-http-requests/ "grequests：异步的 HTTP 请求")

`grequests` 构建在 `gevent` 库之上，可以并发多个请求，有效利用异步编程的强大功能。这篇基础教程介绍了它的基本使用方法，以及一个提升性能的建议。

3、[开发一个 Python 编译器和解释器](https://mathspp.com/blog/tag:bpci "开发一个 Python 编译器和解释器")

这是一系列博文，目前已更新 6 篇，目标是探索和研究实现 Python 等编程语言所需的概念和算法，将会涉及分词器、解析器、编译器和解释器。

4、[使用 Python+ChatGPT 开发一个书籍摘要 AI](https://levelup.gitconnected.com/build-an-ai-tool-to-summarize-books-instantly-828680c1ceb4 "使用 Python+ChatGPT 开发一个书籍摘要 AI")

一篇教程，用 Python、Langchain 和 OpenAI embedding 开发一个书籍摘要工具。另外，作者使用 Streamlit 发布了一个[在线体验网站](https://gptsummarizer.streamlit.app/ "在线体验网站")。

![AI作书籍摘要](https://img.pythoncat.top/2023-11-10_book.png)

5、[数据库生成的列 ：Django & SQLite](https://www.paulox.net/2023/11/07/database-generated-columns-part-1-django-and-sqlite/ "数据库生成的列 ：Django & SQLite")

`GeneratedField` 是正在开发的 Django 5.0 的新功能，利用数据库的能力自动计算数据列的值。作者是 Django 的贡献者，测试了在 SQLite 中使用这个新功能的各种场景。（附：这篇文章还介绍了一些 [Django 5.0 中的新东西](https://fly.io/django-beats/new-goodies-in-django-50/ "Django 5.0 中的新东西")）

6、[你能用 Python 的 bisect 模块做到这些事](https://martinheinz.dev/blog/106 "你能用 Python 的 bisect 模块做到这些事")

`bisect` 模块只有两个函数，但可以做很多事，文章介绍了：二分搜索、前缀搜索、在列表中查找连续的相等值、查找字典中最接近的键、自定义对象的排序、按照字典 key 搜索。

7、[为什么说在 Windows 上为 Python 3.12 构建的 SciPy 是一个小奇迹？](https://labs.quansight.org/blog/building-scipy-with-flang "为什么说在 Windows 上为 Python 3.12 构建的 SciPy 是一个小奇迹？")

每当 Python 发布新版本时，三方库的维护者们也要紧锣密鼓开发兼容的对应版本，这不是轻松的事。作者介绍了他们遇到的严峻挑战，其实就是 Python 社区老大难的打包问题。好在维护者们已经找到了适用的解决方案。

8、[使用 AI 进行网页抓取实验（使用 GPT-4 解析 HTML）](https://serpapi.com/blog/web-scraping-and-parsing-experiment-with-ai-openai/ "使用 AI 进行网页抓取实验（使用 GPT-4 解析 HTML）")

OpenAI 发布了新的模型，它的能力到底如何呢？使用 GPT-4 作网页抓取，具有哪些优点和缺点呢？文章分别实验了抓取结构良好的网站、抓取 Google 自然搜索结果、抓取 Google SERP、以及抓取 Google MAPS 结果。

9、[Django vs Flask：哪个是最好的 Python Web 框架？](https://blog.jetbrains.com/pycharm/2023/11/django-vs-flask-which-is-the-best-python-web-framework/ "Django vs Flask：哪个是最好的 Python Web 框架？")

Python 圈最为流行的两大 Web 框架，到底应该如何取舍呢？这是一篇细致的长文，详细对比了它们在模板系统、URL 调度器、数据库支持、身份验证及授权、测试、软件架构、学习曲线等方面的差异。没有更好的，只有是否适合你的。

![Web框架的使用率占比](https://img.pythoncat.top/web-frameworks.png)

10、[在 Mac 上安装 Python 的正确方法](https://marvelousmlops.substack.com/p/the-right-way-to-install-python-on "在 Mac 上安装 Python 的正确方法")

如何在新的 M2 MacBook 上安装 Python 呢？这篇手把手的指导教程中，作者给出的建议是 **Pyenv + pyenv-virtualenv** 。

11、[用 Python 开发简单的 Android 数据分析应用](https://www.techbeamers.com/simple-android-data-analytics-app-in-python/ "用 Python 开发简单的 Android 数据分析应用")

这篇教程指导你开发一个 Android 数据分析应用，其作用是记录和显示你全天在屏幕上花费的时间。使用的 GUI 框架是`kivy` ，数据分析使用了`Pandas` 。

12、[改进 Numpy 的 Python API，为 2.0 版本准备](https://labs.quansight.org/blog/numpy-python-api-cleanup "改进 Numpy 的 Python API，为 2.0 版本准备")

NEP-52 是 Numpy 的一则增强提案，旨在识别 Numpy 中过时、重复和弃用的 Python API，并作重构优化。这项工作是为了顺利迁移到 Numpy 2.0 而做的准备。作者介绍了他在其中遇到的挑战和取得的部分成就。

🎁**Python开发者调查**🎁官方第七次开发者调查，旨在了解 Python 开发社区的现状，鼓励你花费几分钟来填写：[填写地址](https://survey.alchemer.com/s3/7554174/python-developers-survey-2023 "填写地址")

## 🐿️项目&资源

1、[pyvideotrans：视频的语言翻译，并添加配音](https://github.com/jianchang512/pyvideotrans "pyvideotrans：视频的语言翻译，并添加配音")

一个视频翻译工具，可将一种语言的视频翻译为另一种语言和配音的视频。（star 1.4K）

2、[pyink：Google 内部修改 Black 而成的代码格式化工具](https://github.com/google/pyink "pyink：Google 内部修改 Black 而成的代码格式化工具")

由 Black 派生而成，用于解决 Google 数千名工程师在 monorepo 上工作产生的问题。

3、[sqlmodel：Python 中的 SQL 数据库](https://github.com/tiangolo/sqlmodel "sqlmodel：Python 中的 SQL 数据库")

由 FastAPI 作者开源的 SQL 数据库，结合了 SQLAlchemy 和 Pydantic，旨在实现简单性、兼容性和稳健性。（star 11.2K）

4、[wagtail：一个 Django 内容管理系统](https://github.com/wagtail/wagtail "wagtail：一个 Django 内容管理系统")

一个专注于用户体验的后台管理系统，上期分享了关于“[Django Admin 丑陋](https://www.coderedcorp.com/blog/why-is-the-django-admin-ugly/ "Django Admin 丑陋")”的文章，wagtail 是可提供给终端用户使用的最佳推荐。（star 16.2K）

![Wagtail美观的界面设计](https://img.pythoncat.top/2023-11-09-wagtail.png)

5、[NBA-Machine-Learning-Sports-Betting：使用机器学习的 NBA 比赛预测](https://github.com/kyleskom/NBA-Machine-Learning-Sports-Betting "NBA-Machine-Learning-Sports-Betting：使用机器学习的 NBA 比赛预测")

一个机器学习 AI，用于预测 NBA 比赛胜负。包含 2007-08 赛季到本赛季的所有球队数据。

6、[Python_EBook_Free：Python 电子书和资源](https://github.com/FarhaKousar1601/Python_EBook_Free "Python_EBook_Free：Python 电子书和资源")

这个仓库归档了一些 Python 电子书和学习资源，都是 PDF 格式。

7、[pathway：高吞吐量和低延迟实时数据处理框架](https://github.com/pathwaycom/pathway "pathway：高吞吐量和低延迟实时数据处理框架")

一个数据处理框架，结合了 LLM 程序的批处理、流式处理和实时 API，可与各种数据源交互（如 Kafka、CSV 文件、SQL/noSQL 数据库和 REST API）。

8、[prefect：一个工作流编排工具，构建数据管道](https://github.com/PrefectHQ/prefect "prefect：一个工作流编排工具，构建数据管道")

它是数据密集型工作流的编排器，可将 Python 函数转换为可观察和编排的工作单元。支持自动重试、分布式执行、调度、缓存等功能，拥有强大的仪表板进行监控。（star 13.2K）

![Prefect的仪表板](https://img.pythoncat.top/cloud-dashboard.png)

9、[VideoCrafter：生成高质量视频模型](https://github.com/AILab-CVC/VideoCrafter "VideoCrafter：生成高质量视频模型")

一个支持高清晰度的视频生成和编辑工具，目前包括文字生成视频及图片生成视频两种模型。（star 3K）

10、[程序员值得看的 42 个学习资源](https://madza.hashnode.dev/42-developer-resources-to-kickstart-your-coding-journey "程序员值得看的 42 个学习资源")

这篇文章收集了一系列基础资源、课程和教程、编码游戏、书籍、播客、YouTube 频道、最佳实践等等。

11、[networkx：Python 的网络分析库](https://github.com/networkx/networkx "networkx：Python 的网络分析库")

用于创建、操作和研究复杂网络的结构、动力学和功能，适用于复杂网络的分析。（star 13.4K）

12、[PythonFrameworks：Python 的各种框架汇总](https://github.com/jgu-bytes/PythonFrameworks "PythonFrameworks：Python 的各种框架汇总")

这个项目收录了 Python 中的各种框架，有 Web 框架、API 框架、CMS、ML&DL&AI、任务/消息队列、并行&分布式计算、工作流&管道、DevOps、爬虫、GUI&TUI，等等。提供有一个[在线网站](https://pythonframeworks.com/ "在线网站")。

![一部分Web框架](https://img.pythoncat.top/2023-11-10_framework.png)

## 🐢播客&视频

1、[core.py：一档新的 Python 播客](https://podcasters.spotify.com/pod/show/corepy "core.py：一档新的 Python 播客")

由 Python 核心开发者 Pablo Galindo 和 Łukasz Langa 主理的播客，已推出两期节目：[核心开发者 Sprint 及 Python 3.13.0 alpha 1](https://podcasters.spotify.com/pod/show/corepy/episodes/Episode-1---Core-Sprint-in-Brno--Python-3-13-0-alpha-1-e2apebk "核心开发者 Sprint 及 Python 3.13.0 alpha 1")、[PEP-703：移除 GIL](https://podcasters.spotify.com/pod/show/corepy/episodes/Episode-2---PEP-703-Removing-the-GIL-e2b8egi "PEP-703：移除 GIL")

2、[为什么静态类型又流行起来了？ ](https://www.youtube.com/watch?v=Tml94je2edk "为什么静态类型又流行起来了？ ")

上世纪 90 年代诞生的 Python、Ruby、PHP 和 JavaScript 这些动态编程语言都在拥抱静态类型（mypy、Sorbet、Hack 和 TypeScript），诞生不算久的 Go、Kotlin、Dart 和 Rust 等都是静态类型。为什么静态类型卷土重来？这对未来意味着什么？

3、《Boost your Git DX》作者的两期播客

[Adam Johnson](https://twitter.com/AdamChainz "Adam Johnson") 新书《提升你的 Git 开发者体验》上市后，分别参加了[Real Python Podcast #179](https://realpython.com/podcasts/rpp/179/ "Real Python Podcast #179") 和 [Pybites #139](https://pybit.es/articles/maximizing-your-dx-with-adam-johnson/ "Pybites #139") 两期播客节目。

## 🐼欢迎订阅

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