---
title: 'Python 潮流周刊#13：Jupyter Notebook 7 发布了，无 GIL 提案传来大好消息！'
pubDate: 2023-07-29
author: '豌豆花下猫'
---

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

本周刊精心筛选国内外的 250+ 信息源，为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景：帮助所有读者精进 Python 技术，并增长职业和副业的收入。

**周刊已开通 Telegram 频道**，欢迎加入：[https://t.me/pythontrendingweekly](https://t.me/pythontrendingweekly)

## 🦄文章&教程

1、[Jupyter Notebook 7 隆重发布](https://blog.jupyter.org/announcing-jupyter-notebook-7-8d6d66126dcf) (英)

Jupyter Notebook 大版本更新，亮点包括实时协作、交互式调试、目录、主题和深色模式、国际化、改进的可访问性、移动设备上的紧凑视图。

2、[Python 中的弱引用与基础类型支持情况探究](https://juejin.cn/post/7258881840823615544)

Python 的基础类型 Int、List、Dict、Tuple、Str 不支持弱引用，而 Object、Type、Set 等类型却支持弱引用，为什么会出现这种情况呢？文章给出了自己的分析。

3、[分布式锁的介绍与 Python 实现](http://so1n.me/2023/07/23/distributed_lock_lntroduction_and_lmplementation/)

什么情况下要使用分布式锁？如何用 py-redis 实现分布式锁，加锁与解锁的流程是怎样的？加锁的超时时间有什么注意点，如何实现 WatchDog 给锁自动续约？

4、[释放 PyScript 的力量：在 HTML 中运行 Python 代码](https://scofield.hashnode.dev/unlocking-the-power-of-pyscript-a-guide-to-running-python-code-in-your-html) (英)

一篇 PyScript 入门教程，介绍了安装、基础知识、配合 Flask 的使用以及高级功能。

5、[通过并发实现更快的文件 I/O](https://superfastpython.com/faster-file-io-with-concurrency/) (英)

什么是文件 I/O，为什么它会比主内存 I/O 慢很多？文件 I/O 的速度与哪些因素有关？有哪些提升文件 I/O 性能的方法？

6、[如何编写完美干净的 Python 代码？](https://dev.to/atkumar/how-to-write-impeccably-clean-code-that-will-save-your-sanity-4np9) (英)

文章介绍了一些最佳编程实践，涵盖代码结构、pre-commit、类型提示、文档字符串、lint、Pydantic、拼写检查、测试等方面。

7、[Python 日志记录：对比最流行的 6 个库](https://betterstack.com/community/guides/logging/best-python-logging-libraries/) (英)

文章详细对比了当前最为流行的 6 种日志框架：**logging、loguru、structlog、Eliot、logbook 与 picologging** 。最推荐的无疑是前两个，其它权当兴趣尝鲜吧。

8、[使用 cProfile 分析模块级代码](https://adamj.eu/tech/2023/07/23/python-profile-section-cprofile/) (英)

如何使用 **cProfile** 来对 Python 代码进行性能分析？文章简单介绍了它的用法，并给出了上下文管理器与装饰器两种高级用法。

9、[掌握 Python 函数式编程](https://www.codium.ai/blog/mastering-functional-programming-in-python/) (英)

文章介绍了函数式编程的优点、Python 对函数式编程的支持、最佳实践以及编写 Python 程序时要避免的错误。

10、[Python 3.12 预览版：更直观和一致的 f-string](https://realpython.com/python312-f-strings/) (英)

在 Python 3.12 之前，f-string 有什么限制？即将发布的 3.12 版本会带来哪些变化呢？新功能前瞻：嵌入表达式可以重用引号、f-string 中允许使用反斜杠、多行表达式中可写注释、任意级别的 f-string 嵌套、优化了 f-string 的错误提示……

11、[使用 AsyncMixin 创建可等待的构造函数](https://dev.to/akarshan/asynchronous-python-magic-how-to-create-awaitable-constructors-with-asyncmixin-18j5) (英)

介绍了如何使用名为 `AsyncMixin` 的 mixin 在 Python 中创建异步构造函数。

12、[在 Python 中查找并修复不安全的直接对象引用](https://snyk.io/blog/insecure-direct-object-references-python/) (英)

不安全的直接对象引用 (IDOR) 是一种安全漏洞，文章介绍了这种漏洞的危害，如何识别并修复 IDOR 漏洞。

13、[使用异步 Python 克服性能瓶颈：深入研究 CPU 密集型代码](https://medium.com/@DorIndivo/overcoming-performance-bottlenecks-with-async-python-a-deep-dive-into-cpu-bound-code-b604a400255a) (英)

作者介绍了如何识别和优化特征存储中 CPU 密集型代码，从而提升核心模型的性能。事件循环延迟是什么，如何监控异步代码消耗的时间？

14、[PEP-720 交叉编译 Python 包](https://peps.python.org/pep-0720/) (英)

交叉编译是指在一台计算机上编译适用于另一种体系结构的程序。这份 PEP 试图揭示交叉编译遇到的挑战，并以此进行改进。

15、[PEP-722 单文件脚本的依赖关系规范](https://pep-previews--3210.org.readthedocs.build/pep-0722/) (英)

在项目中记录和管理第三方库，这有很多解决方案。但是，如何给单文件管理三方库依赖呢？这份 PEP 提出了一种很简单的规范格式。

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

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

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

## 🐿️项目&资源

1、[Resume-Matcher：比较简历与职位描述，按照打分排名](https://github.com/srbhr/Resume-Matcher) (英)

基于 AI 的简历匹配器，根据 JD 的关键词给简历打分。使用 Qdrant（一种高效的向量相似度搜索工具）来衡量简历与 JD 的匹配程度。

2、[awesome-python-htmx：Python 中使用 htmx 作 Web 开发的精选内容](https://github.com/PyHAT-stack/awesome-python-htmx) (英)

PyHAT 旨在 Python 中推广 htmx+ASGI+TailwindCSS，这个项目列出了一些入门资源、教程、设计理论、周边生态等等。

3、[CodeGeeX2: 更强大的多语言代码生成模型](https://github.com/THUDM/CodeGeeX2)

基于 ChatGLM2-6B 基座语言模型，在 Python 上达到 35.9% 的 Pass@1 一次通过率，超越规模更大的 StarCoder-15B。CodeGeeX 插件支持 VS Code、 IntelliJ IDEA、PyCharm、GoLand、WebStorm、Android Studio 等IDE。（star 1K）

![AI编程助手](https://img.pythoncat.top/codegeex_demo.png)

4、[Chinese-Llama-2-7b: 第一个能下载运行的中文 LLaMA2 模型](https://github.com/LinkSoul-AI/Chinese-Llama-2-7b)

开源可商用的**中文版 Llama2 模型及中英文 SFT 数据集**，兼容适配所有针对原版 *llama-2-chat* 模型的优化。（star 1K）

5、[docker-llama2-chat: LLaMA2 (official / 中文版 / INT4 / llama2.cpp)](https://github.com/soulteary/docker-llama2-chat)

中文开源项目，三步上手 LLaMA2，作者写了一系列教程博客。

6、[taipy：将数据和 AI 算法转变为完整的 Web 应用](https://github.com/Avaiga/taipy) (英)

一个全栈项目，快速将数据和 AI 构建出 Web 应用。

![前后端示意图](https://img.pythoncat.top/2023-07-29_taipy.png)

7、[pyrasite：将代码注入正在运行的 Python 进程](https://github.com/lmacken/pyrasite) (英)

允许在运行中的 Python 进程里注入自定义代码，以实现动态调试、修改变量值、破解加密、分析运行时行为等功能。支持多种注入方式，包括注入到 Python 解释器、注入到指定函数、注入到特定线程等。（star 2.7K）

8、[python-manhole：调试运行中的 Python 程序](https://github.com/ionelmc/python-manhole) (英)

在运行中的 Python 进程里提供交互式的调试和监控功能，利用 Python 的"ptrace"机制，通过在目标进程中注入代码，可通过 SSH 或 telnet 等协议连接，实现远程交互。与 gevent 和 eventlet 兼容，有少许限制。

9、[vscode-python：使用 VScode 和 Docker 设置 Python 开发环境](https://github.com/RamiKrispin/vscode-python) (英)

一个非常完备的教程项目，指导在 Docker 上运行 Python、设置开发环境与容器扩展、测试与部署等。

![使用VScode和Docker的开发工作流](https://img.pythoncat.top/docker-architecture.png)

10、[webdriver_manager：Python 的 Webdriver 管理器](https://github.com/SergeyPirogov/webdriver_manager) (英)

使用 **Selenium** 与 **Playwright** 等框架时，要管理各种浏览器驱动。这个项目简化了浏览器驱动的管理与使用方式。

11、[lets-plot：用于统计数据的开源绘图库](https://github.com/JetBrains/lets-plot) (英)

**JetBrains** 开源的一个绘图库，可创建美观、交互式的统计图表和数据可视化。为 Python 和 Kotlin 开发者提供类似 **ggplot2** 的绘图 API。（star 1.1K）

12、[pdfarranger：在图形界面合并或拆分 PDF 文档，支持旋转、裁剪和重排](https://github.com/pdfarranger/pdfarranger) (英)

一个小型 python-gtk 程序，通过直观的方式编辑 PDF 文档。它的后端基于 [pikepdf](https://github.com/pikepdf/pikepdf) ，这是一个用于读写 PDF 文件的库。（star 2.3K）

![pdfarranger的界面](https://img.pythoncat.top/pdfarranger.png)

## 🥂讨论&问题

1、[关于 PEP-703 的指导委员会通知（使 CPython 的 GIL 成为可选）](https://discuss.python.org/t/a-steering-council-notice-about-pep-703-making-the-global-interpreter-lock-optional-in-cpython/30474?s=35) (英)

在第 11 期周刊中，我们分享过“如果 PEP-703 被采纳，Meta 将投入人力支持”，现在又有进展啦，指导委员会打算接受 PEP-703 了！这篇帖子列出几个基本原则与三个阶段的开发计划。向后兼容性是重中之重，这不会是 Python 4。

## 🐱赞助&支持

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

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

## 🐼欢迎订阅

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

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