你好,我是猫哥。这里每周分享优质的 Python、AI 及通用技术内容,大部分为英文。本周刊开源,欢迎
投稿。另有
电报频道作为副刊,补充发布更加丰富的资讯。
🐱产品推荐
本周刊由“
Python猫”出品,这是一个以 Python 技术科普和分享为主的科技自媒体,欢迎关注同名公众号。品牌合作请私信联系。
🦄文章&教程
如何用 Python 搭建属于自己的 RSS 信息流网站?文章介绍了一个完整的 Flask 项目,支持对接 RSS、解析文章、自动更新,最后部署上线并使用 Nginx 作反向代理。
作者介绍了自己开源的一个语法类似于 Flask 的 Web 框架,完全支持 asyncio 异步,支持 Websocket、SSE、CORS、Jinja 和 uTemplate 模板等功能。非常小(核心框架代码 700 多行),可以跟 MicroPython 一起使用。
在近 20 年前的早期智能手机上运行当下最火的大语言模型,这事感觉蛮有趣!作者使用大小为 4GB 的Llama-2–7B-Chat-GPTQ
模型,最先尝试用 Streamlit 创建应用,但发现它的浏览器不支持,最后用 Flask 开发一个简单的网页,实现与 LLM 的交互!
Asyncio 出现晚,不像go
、Dart
、js
一样隐式的运行事件循环,又使用了async
、await
的语法,所以很容易用错。文章介绍了三个坑,以及正确的避坑方法。
YAMLScript 是一种函数式编程语言,其语法使用 YAML 编码。它提供了 Python 的
yamlscript
库,可与
PyYAML
一样操作 YAML 文件,支持最新的 YAML 1.2 规范,还可使用 YAMLScript 函数来生成或操作数据。
持续集成(简称 CI)是将开发者的代码合并到主存储库中的过程,它涉及的环节不少:提交前测试、代码格式化、静态分析、解决冲突等。很多任务需要用自动化方式,文章详细介绍了 CI 入门、CI 平台选择、CI 任务实践、CI 任务扩展等话题。
一篇很详细的 Type Hints 教程,大部分内容是对《流畅的 Python 第二版》与官方文档的总结,后续基于 Python 3.12 重新编排并新增了一些内容。(投稿自@
JayYoung2021)
Pyinstaller 可以将 Python 脚本转换为 Windows 可执行文件。为什么实际没问题的代码,却可能被检测为病毒呢?如何避免被防病毒软件误伤呢?文章介绍的解决方案有:避免单文件模式、自行构建 Pyinstaller 的引导加载程序、使用代码签名证书、使用 Nuitka/Inno Setup 等替代工具。
“字体子集”指的是一个字体文件的部分,它有助于优化性能,减少下载时间。作者介绍了自己开源的用于生成字体子集的 Python 库fontimize
,可以减少字体文件约 95% 的大小。
周刊第 27 期分享过 Python 3.13 正在开发一个 JIT 编译器的消息,现在 @brandtbucher 已经提交了 PR 啦(恰在圣诞节前)!commit 信息像是一首诗,蛮有意思。
Python 中用zip
将两个列表合并,就像一个拉链, Unix 中的paste
命令可执行相同操作,它的比喻是粘贴:将一列放到另一列旁边。paste
可追溯到 1978 年,zip
则追溯到 1988 年,但现在这两个词通常被视作其它含义:paste
总是用于“复制和粘贴”,zip
是压缩文件格式。
作者做了一个看似很无聊的尝试,成功将 40 亿个 if 语句写入到 40GB 文件中,可以快速判断任意 32 位数字是偶数还是奇数。这当然是没有现实用处的,但阅读文章你会了解做成这件事并不简单:如何高效写出这么多 if 语句?如何控制文件大小避免编译错误?如何加载和执行才能提升性能?
🐿️项目&资源
一个基于 Python 的 UI 框架,可以创建按钮、对话框、Markdown、3D 场景、绘图等前端标准元素,内置定时器定时刷新数据,支持 Tailwind CSS 自动补全,支持在 Jupyter Notebook 运行。(star 6.2K)
一套用于转换和处理 CSV 的命令行工具,一行命令实现一种常见功能,包括 Excel 转 CSV、JSON 转 CSV、CSV 转 JSON、打印列名、查找匹配单元格的行、生成统计信息、使用 SQL 方式查询表数据、导入和查询数据库数据。(star 5.7K)