Python猫

Python 潮流周刊#63:开发 Python Web 项目

你好,我是猫哥。这里每周分享优质的 Python、AI 及通用技术内容,大部分为英文。另有电报频道[1]作为副刊,补充发布更加丰富的资讯,欢迎关注。

本期分享了 10 篇文章,13 个开源项目,2 则热门话题,全文 2100 字。

🦄文章&教程[2]

1、用 Vue 和 Django 开发 Web 项目的终极指南(2024)[3]

如何高效将 Vue 和 Django 搭配起来使用,特别是小团队以低成本开发全栈项目时?作者主要介绍了在 1 台服务器上部署前后端服务的场景,介绍了资源绑定策略、服务端渲染 SEO 友好的 HTML、客户端增强 HTML 动态内容等话题。

2、用 Pyodide 和 React 开发可视化的低/无代码应用[4]

出自 Pyodide 官方博客,开发了一个 Web 项目,让用户无需编码即可使用 pandas,同时支持 matplotlib 绘图和 scikit-learn 作线性回归。文章介绍了部分实现原理,演示了主要的功能。

Image

3、Python \_\_all\_\_的问题[5]

Python 不像 Java 等语言可用 public/private 关键字来限定类函数的可见范围,我们用 __all__ 显式声明可被导出的内容,但这不是强制的。作者指出了它存在的问题,分享了一种强制 __all__ 声明内容不允许导出的方法。

4、为什么“python -m json”没用?为什么是“json.tool”?[6]

“python -m json.tool xxx”用于在命令行中打印美化的 JSON 内容,为什么这个命令不是简化的“python -m json xxx”呢?作者探究了“-m”标记和json 库的早期发展历史,解答出了这个疑惑。

5、tea-tasting:对 A/B 测试作统计分析的 Python 包[7]

作者开源了 tea-tasting 库,用作 A/B 测试的统计分析。文章详细介绍了这个库的特性和基本使用方法。

6、独立线程中的 Asyncio 事件循环[8]

asyncio 事件循环通常在主线程中运行,但也可以在新线程或守护线程运行。文章介绍了在独立线程使用 asyncio 事件循环的三种方法。

7、使用 eBPF 检测 Python GIL[9]

众所周知,Python 有 GIL 会限制多线程和 CPU 密集型任务的性能。那么,该如何衡量 GIL 的影响呢?文章使用 eBPF 测量从请求到释放 GIL 锁的时间,检测它的耗时分布情况。

8、嵌入式 Python:MicroPython 太棒了[10]

不久前,MicroPython 度过了 11 岁生日。作者是它的早期用户和布道者,文章解释为什么 MicroPython 是极其宝贵的黑客工具。

9、用 git log 查看 Python 函数的变更记录[11]

“git log”是用于查看代码仓提交记录的命令,那能否用它只查看某个指定函数的修改记录呢?文章介绍了“git log -L :<funcname>:<file>”的用法,可以针对性查看一个函数的演变过程。

10、OpenCV 和野生王国[12]

作者用 OpenCV 开发了运动检测程序,用于在热成像仪上监测到底是谁偷吃了自家猫的食物?哈哈,竟看到了小偷有领居家的猫、负鼠和小浣熊!(猫猫一觉醒来发现自己的粮食被洗劫一空是种什么体验……)

🐿️项目&资源[13]

1、fasthtml:最快开发 HTML 应用的方法[14]

新的下一代轻量级 Python Web 框架,集成 HTMX,可开发高速、可扩展、富有表现力的 Web 应用。(star 2.6K)以下代码开发一个简单的“Hello World”页面:

from fasthtml.common import *

app,rt = fast_app()

@rt('/')
defget():
return Div(P('Hello World!'), hx_get="/change")

serve()

2、datachain:使用本地 ML 和 LLM 来处理非结构化数据[15]

AI 驱动,可并行处理千万级非结构化的多模态的文件,使用严格类型的 Pydantic 对象而不是 JSON,也支持离线操作。

3、《数据科学的要素》在线电子书[16]

一本面向无编程经验者的数据科学入门书,采用 Jupyter 笔记本的形式,可在线阅读、修改代码、运行和测试。

4、treescope:IPython 笔记本中将 HTML 内容作交互式查看[17]

专为 IPython 笔记本中的机器学习和神经网络研究而设计,可扩展和折叠子树,提供复制按钮,自动将任意维数组可视化。

5、cardie:开源的名片设计和分享平台[18]

创建商业或个人名片,可分享链接和二维码,可统计名片的访问数据。

6、PyDPainter:好用的像素艺术绘画工具[19]

用 PyGame 开发的复古像素风绘图工具,包含工具栏、菜单和鼠标快捷操作。

Image

7、cloudflare-noip:免费替代付费的动态 DNS 服务[20]

使用免费的 Cloudflare 帐户和本地 cronjob 自动更新 Cloudflare 上的 DNS 记录,替代付费的动态 DNS 服务。

8、peerfetch:基于 WebRTC 的点对点 HTTP[21]

通过 WebRTC DataChannel 实现 http 客户端包装器和相应的服务端 HTTP 代理,可从 Web 浏览器直接安全访问隐藏在防火墙后的边缘设备(IoT 或服务器)。

9、yark:让 YouTube 存档变得简单[22]

下载、更新、管理和播放 YouTube 视频,带有统计报告、关联时间戳和永久链接的注释、支持浅色和深色模式。(star 2K)

10、patchwork:用 LLM 自动审查代码、改 BUG 和写文档[23]

用 AI 改善你的编程工作流,可在 CLI 和 IDE 中运行,也可作为 CI/CD 管道的一部分。有开箱即用的常用工作流模板,也可支持自定义工作流。

11、RestrictedPython:运行不可信 Python 代码的受限执行环境[24]

这不是沙盒系统或安全环境,但它可以定义可信的环境并在其中执行不可信的代码。仅支持 CPython,不支持其它实现。

12、metahuman-stream:实时互动的流媒体数字人[25]

实现音视频同步对话的数字人,支持多种数字人模型(ernerf、musetalk、wav2lip),支持声音克隆、说话被打断、全身视频拼接、视频编排等。(star 2.3K)

13、Chenyme-AAVT:全自动音视频翻译项目[26]

一个简单易用的自动识别、翻译和视频辅助工具,可快速识别视频字幕、翻译字幕、辅助图文,支持多种语言和文件格式,支持 AI 总结问答,等等。

Image

🥂讨论&问题[27]

1、为什么“显性优于隐性”原则不管用了?[28]

Reddit 热帖。作者发现一些流行的库(FastAPI 和 PyTest)并不遵循“explicit is better than implicit”原则,反而用了不少隐式行为和不易观察的魔法操作。为什么会出现这种情况?是这条原则有问题么?

2、有哪些小众但好用的 Python 库?[29]

有什么新的、有趣的、不为人知但却实用的 Python 库可推荐的?我们周刊分享过很多,这则帖子下也有很多!(附:作者还在 Hacker News 问了同样的问题[30])

🐧 往年回顾[31]

Python 潮流周刊#13:Jupyter Notebook 7 发布了,无 GIL 提案传来大好消息![32](2023.07.29)

🐱欢迎订阅[33]

技术周刊是聪明人在信息过载时代中筛选优质知识的聪明手段。这是一个专为国内 Python 开发者量身打造的资讯平台,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等丰富内容。立即订阅[34],每周将收到一篇文章推送,每周进步一点点。

欢迎留言,说说你最喜欢本期的哪一则分享?大家反馈得越多,我今后分享的也会越多!

欢迎将本专栏[35]分享给同样爱学习的同学,当有人通过你分享的海报或者链接,购买了专栏,那么你将获得 50% 的返利。

参考资料
[1] 

电报频道: https://t.me/pythontrendingweekly

[2] 

🦄文章&教程: https://xiaobot.net/p/python_weekly

[3] 

用 Vue 和 Django 开发 Web 项目的终极指南(2024): https://dafoster.net/articles/2021/02/16/building-web-apps-with-vue-and-django-the-ultimate-guide/

[4] 

用 Pyodide 和 React 开发可视化的低/无代码应用: https://blog.pyodide.org/posts/pyodide-react-pandas-matplotlib-scikit/

[5] 

Python __all__的问题: https://www.gauge.sh/blog/the-trouble-with-all

[6] 

为什么“python -m json”没用?为什么是“json.tool”?: https://treyhunner.com/2024/08/why-does-python-m-json-not-work/

[7] 

tea-tasting:对 A/B 测试作统计分析的 Python 包: https://e10v.me/tea-tasting-analysis-of-experiments/

[8] 

独立线程中的 Asyncio 事件循环: https://superfastpython.com/asyncio-event-loop-separate-thread

[9] 

使用 eBPF 检测 Python GIL: https://coroot.com/blog/engineering/instrumenting-python-gil-with-ebpf/

[10] 

嵌入式 Python:MicroPython 太棒了: https://hackaday.com/2024/07/11/embedded-python-micropython-is-amazing/

[11] 

用 git log 查看 Python 函数的变更记录: https://nerderati.com/tracing-the-evolution-of-a-python-function-with-git-log/

[12] 

OpenCV 和野生王国: https://scottsexton.co/post/opencv_wild_kingdom/

[13] 

🐿️项目&资源: https://xiaobot.net/p/python_weekly

[14] 

fasthtml:最快开发 HTML 应用的方法: https://github.com/AnswerDotAI/fasthtml

[15] 

datachain:使用本地 ML 和 LLM 来处理非结构化数据: https://github.com/iterative/datachain

[16] 

《数据科学的要素》在线电子书: https://allendowney.github.io/ElementsOfDataScience/index.html

[17] 

treescope:IPython 笔记本中将 HTML 内容作交互式查看: https://github.com/google-deepmind/treescope

[18] 

cardie:开源的名片设计和分享平台: https://github.com/nfoert/cardie

[19] 

PyDPainter:好用的像素艺术绘画工具: https://github.com/mriale/PyDPainter

[20] 

cloudflare-noip:免费替代付费的动态 DNS 服务: https://github.com/devrim/cloudflare-noip

[21] 

peerfetch:基于 WebRTC 的点对点 HTTP: https://github.com/ambianic/peerfetch

[22] 

yark:让 YouTube 存档变得简单: https://github.com/Owez/yark

[23] 

patchwork:用 LLM 自动审查代码、改 BUG 和写文档: https://github.com/patched-codes/patchwork

[24] 

RestrictedPython:运行不可信 Python 代码的受限执行环境: https://github.com/zopefoundation/RestrictedPython

[25] 

metahuman-stream:实时互动的流媒体数字人: https://github.com/lipku/metahuman-stream

[26] 

Chenyme-AAVT:全自动音视频翻译项目: https://github.com/Chenyme/Chenyme-AAVT

[27] 

🥂讨论&问题: https://xiaobot.net/p/python_weekly

[28] 

为什么“显性优于隐性”原则不管用了?: https://www.reddit.com/r/Python/comments/1efrusl/whatever_happened_to_explicit_is_better_than/

[29] 

有哪些小众但好用的 Python 库?: https://www.reddit.com/r/Python/comments/1egg99j/what_are_some_unusual_but_useful_python_libraries/

[30] 

在 Hacker News 问了同样的问题: https://news.ycombinator.com/item?id=41116896

[31] 

🐧 往年回顾: https://xiaobot.net/p/python_weekly

[32] 

Python 潮流周刊#13:Jupyter Notebook 7 发布了,无 GIL 提案传来大好消息!: https://pythoncat.top/posts/2023-07-29-weekly

[33] 

🐱欢迎订阅: https://xiaobot.net/p/python_weekly

[34] 

立即订阅: https://xiaobot.net/p/python_weekly

[35] 

本专栏: https://xiaobot.net/p/python_weekly

Image
Image