Python 潮流周刊#17:Excel 终于支持 Python 了、Meta 重磅开源新项目、Mojo 新得 1 亿美元融资
△点击上方“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 文件摘要工具,介绍了项目的设计思路、架构设计与编程实现,效果图如下:
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 等项目。
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 相关的开发者与组织的账号。
参考资料
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