你好,我是猫哥。这里每周分享优质的 Python、AI 及通用技术内容,大部分为英文,已在小标题注明。(标题取自其中一则分享,不代表全部内容都是该主题,特此声明。)
本周刊精心筛选国内外的 250+ 信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进 Python 技术,并增长职业和副业的收入。
周刊已开通 Telegram 频道,欢迎加入:https://t.me/pythontrendingweekly
🦄文章&教程
1、Jupyter Notebook 7 隆重发布[1] (英)
Jupyter Notebook 大版本更新,亮点包括实时协作、交互式调试、目录、主题和深色模式、国际化、改进的可访问性、移动设备上的紧凑视图。
2、Python 中的弱引用与基础类型支持情况探究[2]
Python 的基础类型 Int、List、Dict、Tuple、Str 不支持弱引用,而 Object、Type、Set 等类型却支持弱引用,为什么会出现这种情况呢?文章给出了自己的分析。
3、分布式锁的介绍与 Python 实现[3]
什么情况下要使用分布式锁?如何用 py-redis 实现分布式锁,加锁与解锁的流程是怎样的?加锁的超时时间有什么注意点,如何实现 WatchDog 给锁自动续约?
4、释放 PyScript 的力量:在 HTML 中运行 Python 代码[4] (英)
一篇 PyScript 入门教程,介绍了安装、基础知识、配合 Flask 的使用以及高级功能。
5、通过并发实现更快的文件 I/O[5] (英)
什么是文件 I/O,为什么它会比主内存 I/O 慢很多?文件 I/O 的速度与哪些因素有关?有哪些提升文件 I/O 性能的方法?
6、如何编写完美干净的 Python 代码?[6] (英)
文章介绍了一些最佳编程实践,涵盖代码结构、pre-commit、类型提示、文档字符串、lint、Pydantic、拼写检查、测试等方面。
7、Python 日志记录:对比最流行的 6 个库[7] (英)
文章详细对比了当前最为流行的 6 种日志框架:logging、loguru、structlog、Eliot、logbook 与 picologging 。最推荐的无疑是前两个,其它权当兴趣尝鲜吧。
8、使用 cProfile 分析模块级代码[8] (英)
如何使用 cProfile 来对 Python 代码进行性能分析?文章简单介绍了它的用法,并给出了上下文管理器与装饰器两种高级用法。
9、掌握 Python 函数式编程[9] (英)
文章介绍了函数式编程的优点、Python 对函数式编程的支持、最佳实践以及编写 Python 程序时要避免的错误。
10、Python 3.12 预览版:更直观和一致的 f-string[10] (英)
在 Python 3.12 之前,f-string 有什么限制?即将发布的 3.12 版本会带来哪些变化呢?新功能前瞻:嵌入表达式可以重用引号、f-string 中允许使用反斜杠、多行表达式中可写注释、任意级别的 f-string 嵌套、优化了 f-string 的错误提示……
11、使用 AsyncMixin 创建可等待的构造函数[11] (英)
介绍了如何使用名为 AsyncMixin
的 mixin 在 Python 中创建异步构造函数。
12、在 Python 中查找并修复不安全的直接对象引用[12] (英)
不安全的直接对象引用 (IDOR) 是一种安全漏洞,文章介绍了这种漏洞的危害,如何识别并修复 IDOR 漏洞。
13、使用异步 Python 克服性能瓶颈:深入研究 CPU 密集型代码[13] (英)
作者介绍了如何识别和优化特征存储中 CPU 密集型代码,从而提升核心模型的性能。事件循环延迟是什么,如何监控异步代码消耗的时间?
14、PEP-720 交叉编译 Python 包[14] (英)
交叉编译是指在一台计算机上编译适用于另一种体系结构的程序。这份 PEP 试图揭示交叉编译遇到的挑战,并以此进行改进。
15、PEP-722 单文件脚本的依赖关系规范[15] (英)
在项目中记录和管理第三方库,这有很多解决方案。但是,如何给单文件管理三方库依赖呢?这份 PEP 提出了一种很简单的规范格式。
🐿️项目&资源
1、Resume-Matcher:比较简历与职位描述,按照打分排名[16] (英)
基于 AI 的简历匹配器,根据 JD 的关键词给简历打分。使用 Qdrant(一种高效的向量相似度搜索工具)来衡量简历与 JD 的匹配程度。
2、awesome-python-htmx:Python 中使用 htmx 作 Web 开发的精选内容[17] (英)
PyHAT 旨在 Python 中推广 htmx+ASGI+TailwindCSS,这个项目列出了一些入门资源、教程、设计理论、周边生态等等。
3、CodeGeeX2: 更强大的多语言代码生成模型[18]
基于 ChatGLM2-6B 基座语言模型,在 Python 上达到 35.9% 的 Pass@1 一次通过率,超越规模更大的 StarCoder-15B。CodeGeeX 插件支持 VS Code、 IntelliJ IDEA、PyCharm、GoLand、WebStorm、Android Studio 等IDE。(star 1K)
AI编程助手
4、Chinese-Llama-2-7b: 第一个能下载运行的中文 LLaMA2 模型[19]
开源可商用的中文版 Llama2 模型及中英文 SFT 数据集,兼容适配所有针对原版 llama-2-chat 模型的优化。(star 1K)
5、docker-llama2-chat: LLaMA2 (official / 中文版 / INT4 / llama2.cpp)[20]
中文开源项目,三步上手 LLaMA2,作者写了一系列教程博客。
6、taipy:将数据和 AI 算法转变为完整的 Web 应用[21] (英)
一个全栈项目,快速将数据和 AI 构建出 Web 应用。
前后端示意图
7、pyrasite:将代码注入正在运行的 Python 进程[22] (英)
允许在运行中的 Python 进程里注入自定义代码,以实现动态调试、修改变量值、破解加密、分析运行时行为等功能。支持多种注入方式,包括注入到 Python 解释器、注入到指定函数、注入到特定线程等。(star 2.7K)
8、python-manhole:调试运行中的 Python 程序[23] (英)
在运行中的 Python 进程里提供交互式的调试和监控功能,利用 Python 的"ptrace"机制,通过在目标进程中注入代码,可通过 SSH 或 telnet 等协议连接,实现远程交互。与 gevent 和 eventlet 兼容,有少许限制。
9、vscode-python:使用 VScode 和 Docker 设置 Python 开发环境[24] (英)
一个非常完备的教程项目,指导在 Docker 上运行 Python、设置开发环境与容器扩展、测试与部署等。
图片
使用VScode和Docker的开发工作流
10、webdriver_manager:Python 的 Webdriver 管理器[25] (英)
使用 Selenium 与 Playwright 等框架时,要管理各种浏览器驱动。这个项目简化了浏览器驱动的管理与使用方式。
11、lets-plot:用于统计数据的开源绘图库[26] (英)
JetBrains 开源的一个绘图库,可创建美观、交互式的统计图表和数据可视化。为 Python 和 Kotlin 开发者提供类似 ggplot2 的绘图 API。(star 1.1K)
12、pdfarranger:在图形界面合并或拆分 PDF 文档,支持旋转、裁剪和重排[27] (英)
一个小型 python-gtk 程序,通过直观的方式编辑 PDF 文档。它的后端基于 pikepdf[28] ,这是一个用于读写 PDF 文件的库。(star 2.3K)
pdfarranger的界面
🥂讨论&问题
1、关于 PEP-703 的指导委员会通知(使 CPython 的 GIL 成为可选)[29] (英)
在第 11 期周刊中,我们分享过“如果 PEP-703 被采纳,Meta 将投入人力支持”,现在又有进展啦,指导委员会打算接受 PEP-703 了!这篇帖子列出几个基本原则与三个阶段的开发计划。向后兼容性是重中之重,这不会是 Python 4。
参考资料
[1]Jupyter Notebook 7 隆重发布: https://blog.jupyter.org/announcing-jupyter-notebook-7-8d6d66126dcf
[2]Python 中的弱引用与基础类型支持情况探究: https://juejin.cn/post/7258881840823615544
[3]分布式锁的介绍与 Python 实现: http://so1n.me/2023/07/23/distributed_lock_lntroduction_and_lmplementation/
[4]释放 PyScript 的力量:在 HTML 中运行 Python 代码: https://scofield.hashnode.dev/unlocking-the-power-of-pyscript-a-guide-to-running-python-code-in-your-html
[5]通过并发实现更快的文件 I/O: https://superfastpython.com/faster-file-io-with-concurrency/
[6]如何编写完美干净的 Python 代码?: https://dev.to/atkumar/how-to-write-impeccably-clean-code-that-will-save-your-sanity-4np9
[7]Python 日志记录:对比最流行的 6 个库: https://betterstack.com/community/guides/logging/best-python-logging-libraries/
[8]使用 cProfile 分析模块级代码: https://adamj.eu/tech/2023/07/23/python-profile-section-cprofile/
[9]掌握 Python 函数式编程: https://www.codium.ai/blog/mastering-functional-programming-in-python/
[10]Python 3.12 预览版:更直观和一致的 f-string: https://realpython.com/python312-f-strings/
[11]使用 AsyncMixin 创建可等待的构造函数: https://dev.to/akarshan/asynchronous-python-magic-how-to-create-awaitable-constructors-with-asyncmixin-18j5
[12]在 Python 中查找并修复不安全的直接对象引用: https://snyk.io/blog/insecure-direct-object-references-python/
[13]使用异步 Python 克服性能瓶颈:深入研究 CPU 密集型代码: https://medium.com/@DorIndivo/overcoming-performance-bottlenecks-with-async-python-a-deep-dive-into-cpu-bound-code-b604a400255a
[14]PEP-720 交叉编译 Python 包: https://peps.python.org/pep-0720/
[15]PEP-722 单文件脚本的依赖关系规范: https://pep-previews--3210.org.readthedocs.build/pep-0722/
[16]Resume-Matcher:比较简历与职位描述,按照打分排名: https://github.com/srbhr/Resume-Matcher
[17]awesome-python-htmx:Python 中使用 htmx 作 Web 开发的精选内容: https://github.com/PyHAT-stack/awesome-python-htmx
[18]CodeGeeX2: 更强大的多语言代码生成模型: https://github.com/THUDM/CodeGeeX2
[19]Chinese-Llama-2-7b: 第一个能下载运行的中文 LLaMA2 模型: https://github.com/LinkSoul-AI/Chinese-Llama-2-7b
[20]docker-llama2-chat: LLaMA2 (official / 中文版 / INT4 / llama2.cpp): https://github.com/soulteary/docker-llama2-chat
[21]taipy:将数据和 AI 算法转变为完整的 Web 应用: https://github.com/Avaiga/taipy
[22]pyrasite:将代码注入正在运行的 Python 进程: https://github.com/lmacken/pyrasite
[23]python-manhole:调试运行中的 Python 程序: https://github.com/ionelmc/python-manhole
[24]vscode-python:使用 VScode 和 Docker 设置 Python 开发环境: https://github.com/RamiKrispin/vscode-python
[25]webdriver_manager:Python 的 Webdriver 管理器: https://github.com/SergeyPirogov/webdriver_manager
[26]lets-plot:用于统计数据的开源绘图库: https://github.com/JetBrains/lets-plot
[27]pdfarranger:在图形界面合并或拆分 PDF 文档,支持旋转、裁剪和重排: https://github.com/pdfarranger/pdfarranger
[28]pikepdf: https://github.com/pikepdf/pikepdf
[29]关于 PEP-703 的指导委员会通知(使 CPython 的 GIL 成为可选): https://discuss.python.org/t/a-steering-council-notice-about-pep-703-making-the-global-interpreter-lock-optional-in-cpython/30474?s=35
[30]赞赏: https://img.pythoncat.top/wechat_code.png
[31]买杯咖啡: https://www.buymeacoffee.com/pythoncat
[32]微信: https://img.pythoncat.top/python_cat.jpg
[33]博客: https://pythoncat.top
[34]邮件: https://pythoncat.substack.com
[35]Github: https://github.com/chinesehuazhou/python-weekly
[36]Telegram: https://t.me/pythontrendingweekly
[37]Twitter: https://twitter.com/chinesehuazhou