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 作线性回归。文章介绍了部分实现原理,演示了主要的功能。
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 开发的复古像素风绘图工具,包含工具栏、菜单和鼠标快捷操作。
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 总结问答,等等。
🥂讨论&问题[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 提案传来大好消息
🐱欢迎订阅[33]
技术周刊是聪明人在信息过载时代中筛选优质知识的聪明手段。这是一个专为国内 Python 开发者量身打造的资讯平台,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等丰富内容。立即订阅[34],每周将收到一篇文章推送,每周进步一点点。
欢迎留言,说说你最喜欢本期的哪一则分享?大家反馈得越多,我今后分享的也会越多!
欢迎将本专栏[35]分享给同样爱学习的同学,当有人通过你分享的海报或者链接,购买了专栏,那么你将获得 50% 的返利。
电报频道: 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