Python 潮流周刊#32:打造个人的新闻聚合阅读器
△△请给“Python猫”加星标 ,以免错过文章推送
你好,我是猫哥。这里每周分享优质的 Python、AI 及通用技术内容,大部分为英文。本周刊开源,欢迎投稿[1]。另有电报频道[2]作为副刊,补充发布更加丰富的资讯。
🐱产品推荐
本周刊由“Python猫”出品,这是一个以 Python 技术科普和分享为主的科技自媒体,欢迎关注同名公众号。品牌合作请私信联系。
🦄文章&教程
1、在并行程序中实际最多能用多少个 CPU?[3]
在 CPU 密集型任务中,通常要根据 CPU 核心数来设置线程/进程池的大小。但如何确定实际用多少个 CPU 最合适呢?物理 CPU 和逻辑 CPU 是什么?如何测试设置多少 CPU 数比较合适?
2、你的 Python 包都装到哪了?[4]
Python 新手经常会遇到包相关的问题,主要原因之一是不清楚 Python 是如何找包的。文章介绍了 Python 查找包的顺序、它是如何安装包的、虚拟环境的作用、脚本运行方式对搜索路径的影响等。
3、移除 CPython 中的私有 C API 函数[5]
Victor Stinner 是很活跃的核心开发者,他在 Python 3.13 alpha 1 中删除了 300 多个私有 C API 函数,收到了一些负面反馈,在 alpha 2 版本中又恢复了 50 个函数。文章记录他所做的事情,以及社区中大家的反馈。
4、Python 小陷阱:复制列表时的问题[6]
如何给 list 这种可变对象创建副本?对于一维列表,文章介绍了三种方法;但是对于二维列表,就涉及浅拷贝与深拷贝问题,需要使用 copy.deepcopy()。(附注:作者的“Python Gotcha”系列短文,介绍了 Python 的一些使用注意事项。)
5、取消 Asyncio 任务的最佳实践[7]
Asyncio 任务有手工取消和自动取消,文章介绍了 6 项最佳实践,给出了相应的示例。
6、Python 项目中的配置:没有魔法,只是必要的实践[8]
我们通常将可变或敏感的参数放到配置文件中,可以使用哪些方式呢?有 ini、json、toml、yaml 等文件,也有环境变量等方式。在什么时候做配置的初始化呢?测试时如何修改配置呢?文章分享了一些使用技巧。
7、优化 Python 的 Flask、Django 和 FastAPI 程序[9]
文章介绍了一些配置 Web 服务器的最佳实践(涉及 Gunicorn、Uvicorn 和 Hypercorn)。针对 ASGI 和 WSGI 两类标准接口的差异,如何设置 worker 数和线程数,如何使用 Locust 等工具来作测试,不同 Web 开发框架该用什么方案?
8、为什么 Python、Go 和 Rust 都不支持三元运算符?[10]
Python 不支持三元运算符,但它有一个很特殊的条件选择语法 ,为什么会这样设计呢?文章梳理了 Python 波折的语法设计故事,同时介绍了 Go 和 Rust 不谋而合的做法,让人思考什么才是编程语言中更好的语法设计?
9、Python 中的“key”参数的关键[11]
你也许在 sorted() 和 list.sort() 函数中看到过“key”参数,除此之外,还有很多函数带有这个参数,比如 max() 和 min(),文章介绍了相关函数中对这个参数的用法
10、从 Python 数据类中消除状态突变方法[12]
Python 中可以使用@dataclass
装饰器来定义数据类,它会自动添加 __init__
、__repr__
、__eq__
等魔术方法,减少代码量。作者建议定义不可变的数据类,不用将它像普通类一样作变更属性的操作,如果在普通类中要用__repr__
等方法,建议是手写实现。
🎁Python潮流周刊🎁每 30 期为一季,第一季的精华内容已整理成一篇,方便你随时查看。在线访问地址:Python 潮流周刊第一季精华合集(1~30)[13]
🐿️项目&资源
1、feedi:打造个人的新闻聚合阅读器[14]
想不想拥有个人定制化的内容阅读器?它支持解析 RSS 源、拉取 Mastodon 消息、阅读标记、本地文章阅读和预览、支持发送到 Kindle。(附:作者为什么以及如何开发这个项目 Reclaiming the Web with a Personal Reader[15])
2、generative-ai-python:用 Google AI SDK,开发 Gemini 和 PaLM 应用[16]
Google 推出的生成式 AI 开发工具,可快速基于 Gemini 和 PaLM 大模型开发 AI 应用。支持文本生成、多轮对话、嵌入等。
3、python-guide-for-javascript-engineers:开源电子书《JavaScript工程师的Python指南》[17]
一本基于 abook[18] 编写的开源电子书,涵盖了从 Python 环境安装到项目开发的方方面面。通过大量案例对比 JavaScript 和 Python 语言的异同,帮助 JavaScript 工程师快速掌握 Python 语言。(投稿自@luckrnx09[19])
4、sqlmap:SQL 注入和渗透测试工具[20]
可自动检测和利用 SQL 注入缺陷而入侵数据库。具有强大的检测引擎、数据库指纹识别、从数据库查询数据、访问底层文件系统、在操作系统上执行命令等。(star 29.4K)
5、TikTokDownloader: TikTok 和抖音数据采集工具[21]
基于 Requests 模块实现的数据采集工具,功能非常齐全!支持命令行模式、Web UI 模式和接口调用模式。(star 1.5K)(附:第 24 期分享过作者的小红书采集工具 XHS_Downloader)
6、Osprey:通过视觉指导微调实现对像素的理解[22]
这是一个靠演示效果把我惊艳到的项目!直接看下方的演示图吧:
7、django-cast:基于 Django 和 Wagtail 的博客/播客项目[23]
使用 Django 快速搭建个人博客和播客网站,Wagtail 作为 CMS 可方便管理文章和播客节目。支持播放播客和视频,支持评论和垃圾邮件过滤,可自定义网站主题。
8、Qexo:快速、强大且漂亮的 Hexo 编辑器[24]
Hexo 博客后台管理,自定义图床上传图片、在线页面管理、开放 API、一键更新、快速接入友情链接。(star 1.2K)
9、project-based-learning:精选的基于项目的教程列表[25]
星星数超多的资源收集类项目,分不同编程语言和技术领域,收集了很多实战项目类的教程。(star 142K)
10、Amphion:用于音频、音乐和语音生成的工具包[26]
它的目标是提供一个平台来研究将任意输入转换为音频。已支持 TTS 文本转语音、SVC 歌声转换、TTA 文本到音频,支持广泛使用的神经声码器。(star 2.2K)
🐢播客&视频
1、PyConChina 2023 的演讲视频[27]
今年 PyConChina 活动的一部分视频已发布了,可在 B 站上观看。
2、Episode #184:PyCoder's Weekly 的 2023 年总结[28]
PyCoder's Weekly 是我长期在看的周刊,这期播客聊了它的一些总结性话题,比如点击量前 5 的链接、今年一些重要的新闻、今年的重要主题和趋势、有意思的项目,等等。
3、Requests vs Httpx vs Aiohttp 该选哪一个呢?[29]
视频比较了使用 requests、httpx 和 aiohttp 的情况,讨论了异步请求的使用等话题。
🐼欢迎订阅
微信公众号[30]:除更新周刊外,还发布其它原创作品,并转载一些优质文章。(可加好友,可加读者交流群)
博客[31] 及 RSS[32]:我的独立博客,上面有历年原创/翻译的技术文章,以及从 2009 年以来的一些随笔。
邮件[33] 及 RSS[34]:在 Substack 上开通的频道,满足你通过邮件阅读时事通讯的诉求。
Github[35]:你可以获取本周刊的 Markdown 源文件,做任何想做的事!
Telegram[36]:除了发布周刊的通知外,我将它视为一个“副刊”,补充发布更加丰富的资讯。
Twitter[37]:我的关注列表里有大量 Python 相关的开发者与组织的账号。
参考资料
[1]
投稿: https://github.com/chinesehuazhou/python-weekly
[2]电报频道: https://t.me/pythontrendingweekly
[3]在并行程序中实际最多能用多少个 CPU?: https://pythonspeed.com/articles/cpu-thread-pool-size/
[4]你的 Python 包都装到哪了?: https://frostming.com/2019/03-13/where-do-your-packages-go/
[5]移除 CPython 中的私有 C API 函数: https://vstinner.github.io/remove-c-api-funcs-313.html
[6]Python 小陷阱:复制列表时的问题: https://andrewwegner.com/python-gotcha-list-copy.html
[7]取消 Asyncio 任务的最佳实践: https://superfastpython.com/asyncio-task-cancellation-best-practices/
[8]Python 项目中的配置:没有魔法,只是必要的实践: https://robertrode.com/2023/10/02/configuration-in-python-applications-no-magic-just-necessary-practice.html
[9]优化 Python 的 Flask、Django 和 FastAPI 程序: https://tonybaloney.github.io/posts/fine-tuning-wsgi-and-asgi-applications.html
[10]为什么 Python、Go 和 Rust 都不支持三元运算符?: https://pythoncat.top/posts/2023-04-03-condition
[11]Python 中的“key”参数的关键: https://www.thepythoncodingstack.com/p/the-key-to-the-key-parameter-in-python
[12]从 Python 数据类中消除状态突变方法: https://rednafi.com/python/dataclasses_and_methods/
[13]Python 潮流周刊第一季精华合集(1~30): https://pythoncat.top/posts/2023-12-11-weekly
[14]feedi:打造个人的新闻聚合阅读器: https://github.com/facundoolano/feedi
[15]Reclaiming the Web with a Personal Reader: https://olano.dev/2023-12-12-reclaiming-the-web-with-a-personal-reader/
[16]generative-ai-python:用 Google AI SDK,开发 Gemini 和 PaLM 应用: https://github.com/google/generative-ai-python
[17]python-guide-for-javascript-engineers:开源电子书《JavaScript工程师的Python指南》: https://github.com/luckrnx09/python-guide-for-javascript-engineers
[18]abook: https://github.com/luckrnx09/abook
[19]luckrnx09: https://github.com/luckrnx09
[20]sqlmap:SQL 注入和渗透测试工具: https://github.com/sqlmapproject/sqlmap
[21]TikTokDownloader: TikTok 和抖音数据采集工具: https://github.com/JoeanAmier/TikTokDownloader
[22]Osprey:通过视觉指导微调实现对像素的理解: https://github.com/CircleRadon/Osprey
[23]django-cast:基于 Django 和 Wagtail 的博客/播客项目: https://github.com/ephes/django-cast
[24]Qexo:快速、强大且漂亮的 Hexo 编辑器: https://github.com/Qexo/Qexo
[25]project-based-learning:精选的基于项目的教程列表: https://github.com/practical-tutorials/project-based-learning
[26]Amphion:用于音频、音乐和语音生成的工具包: https://github.com/open-mmlab/Amphion
[27]PyConChina 2023 的演讲视频: https://space.bilibili.com/474764697/video
[28]Episode #184:PyCoder's Weekly 的 2023 年总结: https://realpython.com/podcasts/rpp/184/
[29]Requests vs Httpx vs Aiohttp 该选哪一个呢?: https://www.youtube.com/watch?v=OPyoXx0yA0I
[30]微信公众号: https://img.pythoncat.top/python_cat.jpg
[31]博客: https://pythoncat.top
[32]RSS: https://pythoncat.top/rss.xml
[33]邮件: https://pythoncat.substack.com
[34]RSS: https://pythoncat.substack.com/feed
[35]Github: https://github.com/chinesehuazhou/python-weekly
[36]Telegram: https://t.me/pythontrendingweekly
[37]Twitter: https://twitter.com/chinesehuazhou
如果你觉得本文有帮助
请慷慨分享和点赞,感谢啦!