|
1 | | ---- |
2 | | -title: 'Python 潮流周刊#77:Python 依赖管理就像垃圾场火灾?' |
3 | | -pubDate: 2024-11-17 |
4 | | ---- |
5 | | - |
6 | | -本周刊由 Python猫 出品,精心筛选国内外的 250+ 信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进 Python 技术,并增长职业和副业的收入。 |
7 | | - |
8 | | -分享了 12 篇文章,12 个开源项目,2 则热门讨论,全文 2200 字。 |
9 | | - |
10 | | -以下是本期摘要: |
11 | | - |
12 | | -**[🦄文章&教程](https://xiaobot.net/p/python_weekly)** |
13 | | - |
14 | | - |
15 | | -① Python 依赖管理一种垃圾场火灾 |
16 | | - |
17 | | -② Python 的膨胀:精细的项目间依赖关系分析 |
18 | | - |
19 | | -③ 分享我的 Django 项目模板 |
20 | | - |
21 | | -④ 避免在 Django 分页中计算总数 |
22 | | - |
23 | | -⑤ 你需要更注意分词 |
24 | | - |
25 | | -⑥ Pythonic 的空值检查 |
26 | | - |
27 | | -⑦ Attestations:PyPI 的新一代签名 |
28 | | - |
29 | | -⑧ PyPIM:直接在 RAM 中执行 Python 代码的新方法 |
30 | | - |
31 | | -⑨ Python 中管道模式的实际示例 |
32 | | - |
33 | | -⑩ 零停机时间部署 Django 与多步骤数据库更改 |
34 | | - |
35 | | -⑪ Netflix 关于 Workbench UI 延迟问题的调查 |
36 | | - |
37 | | -⑫ 通过 Python 侧车模式在 Go 中使用 ML |
38 | | - |
39 | | -**[🐿️项目&资源](https://xiaobot.net/p/python_weekly)** |
40 | | - |
41 | | - |
42 | | -① Box:用高级的点表示法访问嵌套字典 |
43 | | - |
44 | | -② dendrite-python-sdk:构建 Web AI 代理,像人类般浏览网页 |
45 | | - |
46 | | -③ prints\_charming:增强终端打印的样式和颜色 |
47 | | - |
48 | | -④ weft:类似 vim 的终端阅读器,可与书籍聊天 |
49 | | - |
50 | | -⑤ PiML-Toolbox:Python 可解释机器学习工具箱 |
51 | | - |
52 | | -⑥ PDF-Extract-Kit:高质量提取 PDF 内容 |
53 | | - |
54 | | -⑦ VideoLingo:Netflix 级字幕切割、翻译、对齐、配音 |
55 | | - |
56 | | -⑧ htmy:异步、纯 Python 渲染引擎 |
57 | | - |
58 | | -⑨ website-hot-hub:36Kr、bilibili、抖音、掘金、微信读书的热点榜 |
59 | | - |
60 | | -⑩ watermark-anything:为任何内容添加水印 |
61 | | - |
62 | | -⑪ models:先进开源的视频生成模型 |
63 | | - |
64 | | -⑫ deepface:轻量级人脸识别和人脸属性分析 |
65 | | - |
66 | | -**[🥂讨论&问题](https://xiaobot.net/p/python_weekly)** |
67 | | - |
68 | | - |
69 | | -① 2024 年最先进的 Python |
70 | | - |
71 | | -② 为什么有一些 Python 入门书不教 class、yield、self 之类的方法? |
72 | | - |
73 | | - |
74 | | - |
75 | | -周刊实行付费订阅制,年费 128 元,平均每天不到 4 毛钱,但绝对是一笔有眼光的投资。花钱学习知识,花钱提升自己,欢迎订阅这个你绝对不会后悔的专栏:https://xiaobot.net/p/python_weekly |
76 | | - |
77 | | -订阅后,可免费查看 第 77 期周刊的全文:https://www.xiaobot.net/post/b2ac08fc-9032-457d-ae5e-20430a21ce64 |
78 | | - |
79 | | -Python 潮流周刊第 2 季完结了,分享几项总结:https://pythoncat.top/posts/2024-07-14-iweekly |
80 | | - |
81 | | -周刊前30期的免费合集,含精美电子书(EPUB/PDF):https://pythoncat.top/posts/2023-12-11-weekly |
82 | | - |
83 | | -万字浓缩版,Python 潮流周刊第 1 季的 800 个链接!:https://xiaobot.net/post/78c3d645-86fa-4bd8-8eac-46fb192a339e |
84 | | - |
85 | | -**微信关注 Python猫**:[https://img.pythoncat.top/python_cat.jpg](https://img.pythoncat.top/python_cat.jpg) |
86 | | - |
| 1 | +--- |
| 2 | +title: 'Python 潮流周刊#77:Python 依赖管理就像垃圾场火灾?' |
| 3 | +author: '豌豆花下猫' |
| 4 | +--- |
| 5 | + |
| 6 | +你好,我是猫哥。这里每周分享优质的 Python、AI 及通用技术内容,大部分为英文。周刊开源在 [Github](https://github.com/chinesehuazhou/python-weekly) 上,喜欢请给颗小星星支持下~ |
| 7 | + |
| 8 | +本期分享了 12 篇文章,12 个开源项目,2 则热门讨论,全文 2200 字。 |
| 9 | + |
| 10 | +## [🦄文章&教程](https://xiaobot.net/p/python_weekly) |
| 11 | + |
| 12 | +1、[Python 依赖管理一种垃圾场火灾](https://nielscautaerts.xyz/python-dependency-management-is-a-dumpster-fire.html) |
| 13 | + |
| 14 | +文章讨论了 Python 依赖管理的复杂性,随着项目增长和演变,很容易发生“火灾”。应该如何预防呢?文章分享了很多提升“消防安全”的技术、工具和最佳实践,分析了不同工具的优缺点,根据不同场景提供了使用建议。 |
| 15 | + |
| 16 | +2、[Python 的膨胀:精细的项目间依赖关系分析](https://dl.acm.org/doi/10.1145/3660821) |
| 17 | + |
| 18 | +来自美国计算机协会(ACM)的一篇论文,分析了 1302 个流行的 Python 开源项目源码及其 3232 个传递依赖库,建立细粒度的项目依赖图,作可达性分析,发现超过 50% 的依赖是膨胀的。 |
| 19 | + |
| 20 | +3、[分享我的 Django 项目模板](https://david.guillot.me/en/posts/tech/proposal-for-a-django-project-template/) |
| 21 | + |
| 22 | +作者分享了基于 uv 和 just 的 Django 项目模板,介绍了建议的目录结构、配置管理、环境变量和密钥管理、Web UI、部署和维护等话题。 |
| 23 | + |
| 24 | +4、[避免在 Django 分页中计算总数](https://testdriven.io/blog/django-avoid-counting/) |
| 25 | + |
| 26 | +Django 的默认 Paginator 依赖于对象 `COUNT(*)` 查询来计算页数,可能导致耗时很长,文章介绍如何实现自定义分页器,提高分页 API 的查询性能。文章演示的例子从 855 毫秒提升到 12 毫秒。 |
| 27 | + |
| 28 | +5、[你需要更注意分词](https://cybernetist.com/2024/10/21/you-should-probably-pay-attention-to-tokenizers/) |
| 29 | + |
| 30 | +在构建人工智能应用时,需要对文本进行分词,作者发现分词器的选择和优化对 RAG 的效果至关重要,讨论了不同分词器类型(基于单词、字符和子词)及其对模型性能的影响。 |
| 31 | + |
| 32 | +6、[Pythonic 的空值检查](https://blog.codingconfessions.com/p/the-pythonic-emptiness) |
| 33 | + |
| 34 | +Python 中被 PEP-8 推荐的判断列表是否为空的方法是“if seq”,而不是“if len(seq)”。有人说第一种方法含糊不清,文章对此观点做出反驳,提倡使用有意义的变量名、类型提示、清晰的函数名和文档字符串来提高代码的可读性,减少出现含糊的可能。 |
| 35 | + |
| 36 | +7、[Attestations:PyPI 的新一代签名](https://blog.trailofbits.com/2024/11/14/attestations-a-new-generation-of-signatures-on-pypi/) |
| 37 | + |
| 38 | +PyPI 引入了 PEP-740 规范的一项安全特性:数字证明。它通过提高密钥可用性、索引可验证性、密码学强度和来源属性,改善了传统的 PGP 签名。 |
| 39 | + |
| 40 | +8、[PyPIM:直接在 RAM 中执行 Python 代码的新方法](https://www.techspot.com/news/105557-pypim-new-method-execute-python-code-directly-ram.html) |
| 41 | + |
| 42 | +以色列研究人员[开发了](https://techxplore.com/news/2024-11-software-package-bypass-cpu-efficient.html)一种新的软件“平台”,可将易于阅读的 Python 指令转换为低级机器代码,并在 RAM 中执行,而无需通过 CPU。这种新的内存处理 (PIM) 架构显著提高了代码性能。 |
| 43 | + |
| 44 | +9、[Python 中管道模式的实际示例](https://pybit.es/articles/a-practical-example-of-the-pipeline-pattern-in-python/) |
| 45 | + |
| 46 | +管道模式(Pipeline pattern),也称为链式命令模式,文章介绍了一个用 `functools.reduce` 、`partial`函数以及`BeautifulSoup`库来解析 HTML 内容的实例,解释了这种模式的用法和优点。 |
| 47 | + |
| 48 | +10、[零停机时间部署 Django 与多步骤数据库更改](https://johnnymetz.com/posts/multistep-database-changes/) |
| 49 | + |
| 50 | +蓝绿部署是防止部署期间服务停机的常用策略,文章深入探讨了什么是蓝绿部署,为什么蓝绿部署时修改数据库可能很棘手,以及用 Django 项目为例,常见数据库修改的处理。 |
| 51 | + |
| 52 | +11、[Netflix 关于 Workbench UI 延迟问题的调查](https://netflixtechblog.com/investigation-of-a-workbench-ui-latency-issue-faa017b4653d) |
| 53 | + |
| 54 | +Workbench 是 Netflix 推出的一个远程开发工作区,最近遇到 JupyterLab UI 变得缓慢且无响应问题,文章复盘了该问题的详细定位过程,从 UI 一直到 Linux 内核作调试。 |
| 55 | + |
| 56 | +12、[通过 Python 侧车模式在 Go 中使用 ML](https://eli.thegreenplace.net/2024/ml-in-go-with-a-python-sidecar/) |
| 57 | + |
| 58 | +如何在 Go 项目中使用机器学习模型?文章介绍了几种方法,包括用现成的大语言模型的 API、本地运行开源模型,以及通过 Python 侧车模式集成训练好的模型。文章主要是关于最后一种方法的解释和示例。 |
| 59 | + |
| 60 | + |
| 61 | + |
| 62 | +## [🐿️项目&资源](https://xiaobot.net/p/python_weekly) |
| 63 | + |
| 64 | +1、[Box:用高级的点表示法访问嵌套字典](https://github.com/cdgriffith/Box) |
| 65 | + |
| 66 | +将无法直接访问的嵌套字典变为一种属性,可使用点表示法访问字典的元素,使代码更为简洁和易读。(star 2.6K) |
| 67 | + |
| 68 | +2、[dendrite-python-sdk:构建 Web AI 代理,像人类般浏览网页](https://github.com/dendrite-systems/dendrite-python-sdk) |
| 69 | + |
| 70 | +支持与元素交互、提取结构化数据、身份验证、上传/下载文件、浏览而不被拦截。 |
| 71 | + |
| 72 | +3、[prints_charming:增强终端打印的样式和颜色](https://github.com/deefifofun/prints_charming) |
| 73 | + |
| 74 | +支持终端的彩色打印、设置文本样式(背景色、粗体、下划线等)、自定义样式、创建边框和表格、智能默认值等功能。 |
| 75 | + |
| 76 | +4、[weft:类似 vim 的终端阅读器,可与书籍聊天](https://github.com/dpunj/weft) |
| 77 | + |
| 78 | +在终端中使用类似 Vim 的命令阅读 epub 电子书,并支持与当前文本聊天、生成摘要、文本转语音等功能。 |
| 79 | + |
| 80 | +5、[PiML-Toolbox:Python 可解释机器学习工具箱](https://github.com/SelfExplainML/PiML-Toolbox) |
| 81 | + |
| 82 | +用于可解释机器学习模型开发和验证的新 Python 工具箱,通过低代码接口和高代码 API,它支持越来越多的本质上可解释的 ML 模型。(star 1.2K) |
| 83 | + |
| 84 | +6、[PDF-Extract-Kit:高质量提取 PDF 内容](https://github.com/opendatalab/PDF-Extract-Kit) |
| 85 | + |
| 86 | +从复杂多样的 PDF 文档中提取高质量内容,集成领先的文档解析模型、跨不同文档的高质量解析、模块化设计、提供多样化且全面的 PDF 评估基准。(star 5.6K) |
| 87 | + |
| 88 | +7、[VideoLingo:Netflix 级字幕切割、翻译、对齐、配音](https://github.com/Huanshere/VideoLingo) |
| 89 | + |
| 90 | +一站式视频翻译本地化配音工具,一键生成 Netflix 级别的高质量字幕,告别生硬机翻,告别多行字幕,还能加上高质量的配音,让全世界的知识能够跨越语言的障碍共享。(star 6.3K) |
| 91 | + |
| 92 | +8、[htmy:异步、纯 Python 渲染引擎](https://github.com/volfpeter/htmy) |
| 93 | + |
| 94 | +异步优先的纯 Python 渲染引擎,类似 React 的上下文支持,所有基线 HTML 标签都内置,支持 Markdown,基于 JSON 的国际化,所有东西都可轻松自定义。 |
| 95 | + |
| 96 | +9、[website-hot-hub:36Kr、bilibili、抖音、掘金、微信读书的热点榜](https://github.com/cxyfreedom/website-hot-hub) |
| 97 | + |
| 98 | +每小时自动抓取一次数据,按天归档多个平台的热点榜,数据从 2023-10-25 至今。 |
| 99 | + |
| 100 | +10、[watermark-anything:为任何内容添加水印](https://github.com/facebookresearch/watermark-anything) |
| 101 | + |
| 102 | +对论文 Watermark Anything 的实现和预训练模型,支持在图像中嵌入多个本地化水印。 |
| 103 | + |
| 104 | +11、[models:先进开源的视频生成模型](https://github.com/genmoai/models) |
| 105 | + |
| 106 | +非常先进的视频生成模型,完全开源,具有高保真度的动作和对提示的强烈遵循性。(star 2K) |
| 107 | + |
| 108 | +12、[deepface:轻量级人脸识别和人脸属性分析](https://github.com/serengil/deepface) |
| 109 | + |
| 110 | +不仅能识别人脸,还能分析人物属性(年龄、性别、情感、种族)。人脸识别准确率 97.53%。(star 14.7K) |
| 111 | + |
| 112 | + |
| 113 | + |
| 114 | +## [🥂讨论&问题](https://xiaobot.net/p/python_weekly) |
| 115 | + |
| 116 | +1、[2024 年最先进的 Python](https://www.reddit.com/r/Python/comments/1ghiln0/state_of_the_art_python_in_2024/) |
| 117 | + |
| 118 | +当前在 Python 团队中推行哪些“默认” |
| 119 | + |
| 120 | +2、[为什么有一些 Python 入门书不教 class、yield、self 之类的方法?](https://www.v2ex.com/t/1053740) |
| 121 | + |
| 122 | +为什么有些颇受好评的入门书里都不教这些东西?不学会有问题么? |
| 123 | + |
| 124 | +## [🐧 往年回顾](https://xiaobot.net/p/python_weekly) |
| 125 | + |
| 126 | +[Python 潮流周刊#27:应该如何处理程序的错误?](https://pythoncat.top/posts/2023-11-18-weekly) (2023.11.18) |
| 127 | + |
| 128 | +## [🐱欢迎订阅](https://xiaobot.net/p/python_weekly) |
| 129 | + |
| 130 | +技术周刊是聪明人在信息过载时代中筛选优质知识的聪明手段。这是一个专为国内 Python 开发者量身打造的资讯平台,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等丰富内容。[立即订阅](https://xiaobot.net/p/python_weekly),每周将收到一篇文章推送,每周进步一点点。 |
| 131 | + |
| 132 | +欢迎留言,说说你最喜欢本期的哪一则分享?大家反馈得越多,我今后分享的也会越多! |
| 133 | + |
| 134 | +欢迎将[本专栏](https://xiaobot.net/p/python_weekly)分享给同样爱学习的同学,当有人通过你分享的海报或者链接,购买了专栏,那么你将获得 **50%** 的返利。 |
| 135 | + |
| 136 | +[Python 潮流周刊第 2 季完结了,分享几项总结](https://pythoncat.top/posts/2024-07-14-iweekly) |
| 137 | + |
| 138 | +[Python 潮流周刊第一季精华合集(1~30)](https://pythoncat.top/posts/2023-12-11-weekly) |
| 139 | + |
| 140 | +[万字浓缩版,Python 潮流周刊第 1 季的 800 个链接!](https://xiaobot.net/post/78c3d645-86fa-4bd8-8eac-46fb192a339e) |
0 commit comments