---
title: 'Python 潮流周刊#17：Excel 终于支持 Python 了、Meta 重磅开源新项目、Mojo 新得 1 亿美元融资'
pubDate: 2023-08-26
author: '豌豆花下猫'
---

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

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

[微信](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) 

本周的大新闻一个接一个啊！微软在 Python 之父 Guido 的帮助下，在 Excel 中集成了 Python；Meta 开源了 Code Llama，让程序员看到拥有自己编码助手的福音；Mojo 宣布 1 亿美元的巨额融资，势头之猛让人惊叹。本期周刊还分享了几则关于 FastAPI 的内容、大量学习资源、100 多个新鲜出炉的演讲视频等等，不容错过哟~~

## 🦄文章&教程

1、[Excel 终于支持 Python 了！](https://techcommunity.microsoft.com/t5/microsoft-365-blog/introducing-python-in-excel-the-best-of-both-worlds-for-data/ba-p/3905482)

本周的重磅新闻！微软将 Python 引入到 Excel 中，支持在 Excel 中使用 Python 强大的数据分析、统计建模以及数据可视化库（**pandas、statsmodels、Matplotlib 和 seaborn** 等）。Guido 发推表示他参与了这个项目。

2、[如何使用 FastAPI 与 aiohttp 进行 SSE 响应开发？](https://juejin.cn/post/7269969188391600128)

Server-Sent Events（服务器推送事件）可以让服务端一边生成内容，一边将数据返回给客户端。文章介绍了 FastAPI 如何使用 SSE 方式返回数据，并用 **requests 和 aiohttp** 来获取与展示接口数据。

3、[用 FastAPI 和 Hamilton 实现的 PDF 摘要工具](https://blog.dagworks.io/p/containerized-pdf-summarizer-with)

文章使用 FastAPI、Hamilton、Streamlit 和 ChatGPT 开发了一个 PDF 文件摘要工具，介绍了项目的设计思路、架构设计与编程实现，效果图如下：

![PDF摘要工具的效果图](https://img.pythoncat.top/2023-08-26_pdf.png)

4、[放弃 Python 拥抱 Mojo？鹅厂工程师真实使用感受](https://juejin.cn/post/7270363281117102099)

Mojo 是 **LLVM** 作者发布的一门新语言，完全兼容 Python 的语法。这篇文章上手体验了 Mojo 编程，对比 Python 讨论了它的一些语法、特性以及当前存在的问题。

5、[Mojo 如何获得比 Python 快 35000 倍的加速？](https://www.modular.com/blog/how-mojo-gets-a-35-000x-speedup-over-python-part-1)

Mojo 在生成曼德博集合时比 Python 快 35000 倍，这篇文章介绍了为什么要选用曼德博算法作衡量，以及 Mojo 语言做了哪些优化来实现高性能？（附：Mojo 所属的公司 **Modular** 本周宣布获得 1 亿美元融资，总融资已达到 1.3 亿美元！！）

6、[APL 语言教会我的那些 Python 知识](https://mathspp.com/blog/what-learning-apl-taught-me-about-python)

APL 是在 1960 年代开发的一种高度符号化的编程语言，作者在学习这门语言后，反而加深了对 Python 编程的理解。作者受到触动的只是简单的一行代码，但它包含了内置函数、布尔值、数据驱动、列表推导式等 Python 优雅编程的要素。（附：[从这 27 门编程语言中，也可以加深对 Python 的理解](https://pythoncat.top/posts/2021-12-13-languages)）

7、[深度解析 Jupyter 的内核架构](https://www.romaglushko.com/blog/jupyter-kernel-architecture/)

Jupyter Notebooks 非常强大，它是如何做到的呢？这篇文章分析了 Jupyter 架构的内核以及一些有趣的实现细节，包括代码的执行工作流、代码解析执行、自动补全、代码检查、调试、虚拟输入、客户端和网关等。作者预告后续还会解析 **Jupyter Server、JupyterLab、JupyterHub、Jupyter Enterprise Gateway** 等项目。

![Jupyter的内核架构](https://img.pythoncat.top/jupyter-kernel-overview.png)

8、[Fixit 2：Meta 的下一代自动修复 linter](https://engineering.fb.com/2023/08/07/developer-tools/fixit-2-linter-meta/)

Meta 开源的 linter 工具 [Fixit](https://github.com/Instagram/Fixit) 发布了2.0 版本，它支持自动修复问题，支持用户自定义 lint 规则。这篇文章介绍了 Meta 在使用 Flake8 时遇到的问题、为什么要开发 FIXit，以及为什么要重构出 Fixit 2 这个新版本？

9、[使用 Python 构建代码图像生成器](https://realpython.com/python-code-image-generator/)

一篇超级详细的全栈实战教程，涉及技术有 **Flask、Jinja、Playwright、Pygments 和 Javascript**，实现的是一个代码-图片生成器，也就是可以给代码片段添加样式并生成美观的图片。

10、[apipkg 教程：Python 中的增强延迟加载](https://coderslegacy.com/apipkg-tutorial-enhanced-lazy-loading-in-python/)

周刊第 16 期分享了一篇 importlib 实现延迟加载的文章，这篇文章中的 apipkg 也能实现同样的效果，但用法稍有不同，可以对照学习。

11、[当 asyncio、twisted、tornado 和 gevent 一起走进酒吧...](https://www.bitecode.dev/p/asyncio-twisted-tornado-gevent-walk)

当谈到 Python 并发时，就离不开标题的这些库。文章介绍和对比了这几个库，讨论了它们的设计与使用。那么，该使用哪个异步库呢？

12、[Python 标准化锁定文件的现状](https://snarky.ca/state-of-standardized-lock-files-for-python-august-2023/)

作者想给 Python 提供一种标准化的依赖包锁定文件，曾在 2021 年发起了 [PEP-665](https://peps.python.org/pep-0665/) ，但因为缺少对 sdist 的支持而被拒绝了。作者现在做了一些概念验证的事情，计划有 5 步，目前进展到第 3 步。（附：本月新发起的 [PEP-725 – 在 pyproject.toml 中指定外部依赖项](https://peps.python.org/pep-0725/)）

13、[Python：只需编写 SQL](https://joaodlf.com/python-just-write-sql)

作者看到 Go 编程时不喜欢用 ORM，因此也想尝试不用 ORM 而在 Python 中直接写 SQL。这种回归传统做法的主要问题是会混淆数据库操作与业务逻辑，但并不是不可行。

14、[Python 中如何比较不兼容的类型？](https://stackabuse.com/incompatible-type-comparisons-in-python/)

一篇很详细的基础教程，探讨了`TypeError` 的含义、出现的原因以及解决方法。文章非常之细致，介绍了 20 多种容易出错的场景，有些是初学者问题，但也有些是老手也易忽视的编程细节。

15、[使用 Python 开发一个文件比较工具](https://florian-dahlitz.de/articles/create-your-own-diff-tool-using-python)

有很多版本管理和差异比较工具，但是能否用 Python 开发一个简单的工具实现呢？文章使用 **difflib、argparse 和 HtmlDiff** 分别开发了命令行工具和 HTML 网页两个版本的文件比较工具。

16、[我最喜欢的素数生成函数](https://eli.thegreenplace.net/2023/my-favorite-prime-number-generator/)

埃拉托斯特尼筛法是一种生成素数的算法，作者提供了一个 Python 实现，但是代码的性能和内存占用是主要的问题，因此作者做了一些优化改进，最后给出了一个有详细注释的优化版本。

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

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

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

## 🐿️项目&资源

1、[codellama：Meta 最新开源的代码生成模型](https://github.com/facebookresearch/codellama)

本周最火的开源项目！**Code Llama** 基于 **Llama 2**，可免费商用，可预见不久的将来会出现大量的编程工具！目前支持的语言包括 Python、C++、Java、PHP、Typescript/Javascript、C# 和 Bash。值得一提的是，它包含一个“**Code Llama – Python**”专用版本，基于 100B  token 微调！（star 4K）

2、[seamless_communication：最先进的语音和文本翻译的基础模型](https://github.com/facebookresearch/seamless_communication)

**SeamlessM4T** 也是 Meta 开源的项目，旨在提供高质量的翻译，让不同语言的人通过语音和文本轻松交流。支持 101 种语言的语音输入、96 种语言的文本输入与输出、35 种语言的语音输出。（star 3.7K）

3、[Torchscale：(M)LLM 的基础架构](https://github.com/microsoft/torchscale)

微软开源的一个 PyTorch 库，可让开发者高效地扩展 **Transformers**，聚焦于提升建模的能力与通用性，同时提升训练的稳定性与效率。（star 2.4K）

4、[fastapi-best-practices：FastAPI 的最佳实践](https://github.com/zhanymkanov/fastapi-best-practices)

这个 Github 项目是一篇集合了 20 多项 FastAPI 最佳实践的长文，包括项目结构、数据校验、解耦与重用依赖、遵循 REST、文档、linter 等等话题。（star 4.5K）

5、[yappi：又一个 Python Profiler，支持多线程、asyncio 和 gevent](https://github.com/sumerc/yappi)

yappi 是 PyCharm 默认的性能分析器之一，它是用 C 编写的，支持多线程、asyncio 和 gevent，可以显示挂机时间与实际 CPU 时间。（star 1.2K）

6、[funNLP：几乎最全的中文 NLP 资源库](https://github.com/fighting41love/funNLP)

一个非常丰富的资料库，包含 NLP/人工智能的大量内容。（star 55.7K）

7、[prettymapp：在 Web 应用中创建精美的地图](https://github.com/chrieke/prettymapp)

这是一个 Web 应用和 Python 包，可从 **OpenStreetMap** 获取数据生成漂亮的地图作品。它基于另一个有 10K star 的项目 [prettymaps](https://github.com/marceloprates/prettymaps) ，主要简化了配置、降低代码复杂性、并使用 streamlit 开发了 Web 端应用。（star 1.7K）

![美观的地图](https://img.pythoncat.top/2023-08-26-barcelona.png)

8、[pycparser：纯 Python 实现的完整 C99 解析器](https://github.com/eliben/pycparser)

一个用 Python 写的 C 语言解析器，可轻松集成到需要解析 C 源代码的程序中。它最主要的用途是在 **cffi** 库中，用于解析 C 函数和类型的声明。（star 3K）

9、[quivr：生成式 AI 打造你的第二大脑](https://github.com/StanGirard/quivr)

利用生成式 AI 来存储和检索非结构化的信息，可以理解成支持人工智能的  Obsidian。可以处理各种形式的文件如文本、图片、代码、音频和视频等，依赖于 ChatGPT、Docker、Supabase，只支持操作系统是 Ubuntu 22+。（star 21.7K）

10、[KeymouseGo: 类似按键精灵的鼠标键盘录制和自动化操作](https://github.com/taojy123/KeymouseGo)

一个中文项目。记录用户的鼠标键盘操作，通过触发按钮自动执行之前记录的操作，可设定执行的次数，可以理解为精简绿色版的**按键精灵**。支持 Windows、Linux 和 Mac 系统。（star 4.3K）

11、[ahkunwrapped：集成 AutoHotkey，用 Python 执行自动化](https://github.com/CodeOptimist/ahkunwrapped)

**AutoHotkey** 是一种自动化脚本语言和工具，用于在 Windows 上创建快捷键、宏和自动化任务，例如模拟按键和鼠标操作、窗口管理、剪贴板操作、自动化表单填写等。这个项目覆盖了 AutoHotkey API，使用 Python 来桥接，扩展 AutoHotkey 的能力。

12、[100+ AI/机器学习/深度学习/计算机视觉/NLP 项目与代码](https://github.com/ashishpatel26/500-AI-Machine-learning-Deep-learning-Computer-vision-NLP-Projects-with-code)

这个仓库收录了很多学习资源，其中很多也是一些聚合类的项目，也就是说实际包含的项目与资料有上万之多。（star 13.2K）

13、[trafilatura：一个采集 Web 文本的工具](https://github.com/adbar/trafilatura)

一个 Python 包和命令行工具，可以处理 Web 的文本信息，并转化成各种常用格式输出。包含爬虫功能、HTML 解析、网页内容萃取等等。（star 1.9K）

## 🐢播客&视频

1、[2023 年 PyCon 澳大利亚的 84 个视频](https://m.youtube.com/playlist?list=PLs4CJRBY5F1KwxIxbTmhN9jX4hBtE-OKJ) 

澳大利亚今年 PyCon 上的演讲视频。目前已发布 84 个视频。

![](https://img.pythoncat.top/2023-08-25_pycon_au.png)

2、[2023 年 Pycon 以色列的 23 个视频](https://www.youtube.com/playlist?list=PLnOlTVPC-yFwhpiyjsC0V_98pqRbtwNgh)

以色列今年 PyCon 上的演讲视频。目前已发布 23 个视频。

![](https://img.pythoncat.top/2023-08-25_pycon_israel.png)

3、[2023 年 SciPy Talk 的 44 个视频](https://www.youtube.com/playlist?list=PL1PbeFStIOoOd01KhBeba-byU5E5dJ716)

SciPy Talk 是科学计算领域的年度会议，通常涵盖数据分析、机器学习、人工智能、科学可视化等话题。目前已发布 44 个视频。

![](https://img.pythoncat.top/2023-08-25_scipy2023.png)

## 🥂讨论&问题

1、[如果只懂 Python，如何构建 Web 程序的前端？](https://www.reddit.com/r/Python/comments/15z1amc/how_to_build_the_front_end_of_a_web_app_if_you/)

独自一人开发，想要快速实现全栈的 SaaS 应用，支持用户身份验证、订阅、付款等业务功能，前端该如何选择呢？Reddit 上的这个帖子，或许能给你提供一些思路/方法。

2、V2EX 上三则关于 Python 后端的热门讨论

近期在 Python 节点下最热闹的三篇帖子：[Python 后端该如何提升自己呢？](https://www.v2ex.com/t/962899) 、[深夜睡不着，思考为什么国内 Python Web 后端太少](https://www.v2ex.com/t/965956) 、[Python 做后端，相对于 Java 或者 go 来说，到底差在哪？](https://www.v2ex.com/t/966460) 从就业的角度来看，Python 后端在国内确实偏少，不仅后端，其它领域也有一种“热度退潮”的感觉（除了 AI 相关）。Python 潮流周刊的创刊想法之一就是去欧美盗火，为国内 Python 社区注入活力。愿论坛里将来能少一些沮丧性的、要抛弃 xx 另附高枝的情绪吧。

## 🐱赞助&支持

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

如果你觉得周刊有价值，请随意[赞赏](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 相关的开发者与组织的账号。