查看原文
其他

Python 潮流周刊#17:Excel 终于支持 Python 了、Meta 重磅开源新项目、Mojo 新得 1 亿美元融资

豌豆花下猫 Python猫 2023-09-10

△点击上方“Python猫”关注 ,回复“1”领取电子书

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

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

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

🦄文章&教程

1、Excel 终于支持 Python 了![1]

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

2、如何使用 FastAPI 与 aiohttp 进行 SSE 响应开发?[2]

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

3、用 FastAPI 和 Hamilton 实现的 PDF 摘要工具[3]

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

PDF摘要工具的效果图

4、放弃 Python 拥抱 Mojo?鹅厂工程师真实使用感受[4]

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

5、Mojo 如何获得比 Python 快 35000 倍的加速?[5]

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

6、APL 语言教会我的那些 Python 知识[6]

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

7、深度解析 Jupyter 的内核架构[8]

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

Jupyter的内核架构

8、Fixit 2:Meta 的下一代自动修复 linter[9]

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

9、使用 Python 构建代码图像生成器[11]

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

10、apipkg 教程:Python 中的增强延迟加载[12]

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

11、当 asyncio、twisted、tornado 和 gevent 一起走进酒吧...[13]

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

12、Python 标准化锁定文件的现状[14]

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

13、Python:只需编写 SQL[17]

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

14、Python 中如何比较不兼容的类型?[18]

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

15、使用 Python 开发一个文件比较工具[19]

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

16、我最喜欢的素数生成函数[20]

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

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

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

🐿️项目&资源

1、codellama:Meta 最新开源的代码生成模型[22]

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

2、seamless_communication:最先进的语音和文本翻译的基础模型[23]

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

3、Torchscale:(M)LLM 的基础架构[24]

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

4、fastapi-best-practices:FastAPI 的最佳实践[25]

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

5、yappi:又一个 Python Profiler,支持多线程、asyncio 和 gevent[26]

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

6、funNLP:几乎最全的中文 NLP 资源库[27]

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

7、prettymapp:在 Web 应用中创建精美的地图[28]

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

美观的地图

8、pycparser:纯 Python 实现的完整 C99 解析器[30]

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

9、quivr:生成式 AI 打造你的第二大脑[31]

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

10、KeymouseGo: 类似按键精灵的鼠标键盘录制和自动化操作[32]

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

11、ahkunwrapped:集成 AutoHotkey,用 Python 执行自动化[33]

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

12、100+ AI/机器学习/深度学习/计算机视觉/NLP 项目与代码[34]

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

13、trafilatura:一个采集 Web 文本的工具[35]

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

🐢播客&视频

1、2023 年 PyCon 澳大利亚的 84 个视频[36]

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

2、2023 年 Pycon 以色列的 23 个视频[37]

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

3、2023 年 SciPy Talk 的 44 个视频[38]

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

🥂讨论&问题

1、如果只懂 Python,如何构建 Web 程序的前端?[39]

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

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

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

🐱赞助&支持

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

如果你觉得周刊有价值,请随意赞赏[43]买杯咖啡[44] 进行支持!

如果你想帮助周刊办得更好,欢迎向我们投稿或提出建议:投稿/建议通道[45]

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

🐼欢迎订阅

- 微信公众号[46]:除更新周刊外,还发布其它原创作品,并转载一些优质文章。(可加好友,可加读者交流群)

- 博客[47]RSS[48]:我的独立博客,上面有历年原创/翻译的技术文章,以及从 2009 年以来的一些随笔。

- Github[49]:你可以获取本周刊的 Markdown 源文件,做任何想做的事!

- 邮件[50]:在 Substack 上开通的频道,满足你通过邮件阅读时事通讯的诉求。

- Telegram[51]:除了发布周刊的通知外,我将它视为一个“副刊”,补充发布更加丰富的资讯。

- Twitter[52]:我的关注列表里有大量 Python 相关的开发者与组织的账号。

参考资料

[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

[2]

如何使用 FastAPI 与 aiohttp 进行 SSE 响应开发?: https://juejin.cn/post/7269969188391600128

[3]

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

[4]

放弃 Python 拥抱 Mojo?鹅厂工程师真实使用感受: https://juejin.cn/post/7270363281117102099

[5]

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

[6]

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

[7]

从这 27 门编程语言中,也可以加深对 Python 的理解: https://pythoncat.top/posts/2021-12-13-languages

[8]

深度解析 Jupyter 的内核架构: https://www.romaglushko.com/blog/jupyter-kernel-architecture/

[9]

Fixit 2:Meta 的下一代自动修复 linter: https://engineering.fb.com/2023/08/07/developer-tools/fixit-2-linter-meta/

[10]

Fixit: https://github.com/Instagram/Fixit

[11]

使用 Python 构建代码图像生成器: https://realpython.com/python-code-image-generator/

[12]

apipkg 教程:Python 中的增强延迟加载: https://coderslegacy.com/apipkg-tutorial-enhanced-lazy-loading-in-python/

[13]

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

[14]

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

[15]

PEP-665: https://peps.python.org/pep-0665/

[16]

PEP-725 – 在 pyproject.toml 中指定外部依赖项: https://peps.python.org/pep-0725/

[17]

Python:只需编写 SQL: https://joaodlf.com/python-just-write-sql

[18]

Python 中如何比较不兼容的类型?: https://stackabuse.com/incompatible-type-comparisons-in-python/

[19]

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

[20]

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

[21]

https://pythoncat.top/tags/weekly: https://pythoncat.top/tags/weekly

[22]

codellama:Meta 最新开源的代码生成模型: https://github.com/facebookresearch/codellama

[23]

seamless_communication:最先进的语音和文本翻译的基础模型: https://github.com/facebookresearch/seamless_communication

[24]

Torchscale:(M)LLM 的基础架构: https://github.com/microsoft/torchscale

[25]

fastapi-best-practices:FastAPI 的最佳实践: https://github.com/zhanymkanov/fastapi-best-practices

[26]

yappi:又一个 Python Profiler,支持多线程、asyncio 和 gevent: https://github.com/sumerc/yappi

[27]

funNLP:几乎最全的中文 NLP 资源库: https://github.com/fighting41love/funNLP

[28]

prettymapp:在 Web 应用中创建精美的地图: https://github.com/chrieke/prettymapp

[29]

prettymaps: https://github.com/marceloprates/prettymaps

[30]

pycparser:纯 Python 实现的完整 C99 解析器: https://github.com/eliben/pycparser

[31]

quivr:生成式 AI 打造你的第二大脑: https://github.com/StanGirard/quivr

[32]

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

[33]

ahkunwrapped:集成 AutoHotkey,用 Python 执行自动化: https://github.com/CodeOptimist/ahkunwrapped

[34]

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

[35]

trafilatura:一个采集 Web 文本的工具: https://github.com/adbar/trafilatura

[36]

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

[37]

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

[38]

2023 年 SciPy Talk 的 44 个视频: https://www.youtube.com/playlist?list=PL1PbeFStIOoOd01KhBeba-byU5E5dJ716

[39]

如果只懂 Python,如何构建 Web 程序的前端?: https://www.reddit.com/r/Python/comments/15z1amc/how_to_build_the_front_end_of_a_web_app_if_you/

[40]

Python 后端该如何提升自己呢?: https://www.v2ex.com/t/962899

[41]

深夜睡不着,思考为什么国内 Python Web 后端太少: https://www.v2ex.com/t/965956

[42]

Python 做后端,相对于 Java 或者 go 来说,到底差在哪?: https://www.v2ex.com/t/966460

[43]

赞赏: https://img.pythoncat.top/wechat_code.png

[44]

买杯咖啡: https://www.buymeacoffee.com/pythoncat

[45]

投稿/建议通道: https://github.com/chinesehuazhou/python-weekly/issues/new

[46]

微信公众号: https://img.pythoncat.top/python_cat.jpg

[47]

博客: https://pythoncat.top

[48]

RSS: https://pythoncat.top/rss.xml

[49]

Github: https://github.com/chinesehuazhou/python-weekly

[50]

邮件: https://pythoncat.substack.com

[51]

Telegram: https://t.me/pythontrendingweekly

[52]

Twitter: https://twitter.com/chinesehuazhou

如果你觉得本文有帮助
请慷慨分享点赞,感谢啦

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存