Python潮流周刊:Python 3.13 计划将解释器提速 50%!

大数据 数据分析
Numpy 是作科学计算和数据分析的最重要的库之一,并行性是提升其性能的重要手段。文章介绍了 5 种可以实现 Numpy 并行性的场景和方法:加载/保存 Nu

你好,我是猫哥。这里每周分享优质的 Python 及通用技术内容,部分为英文,已在小标题注明。(标题取自其中一则分享,不代表全部内容都是该主题,特此声明。)

由于公众号不支持外链,文中大量链接无法点击。可直达我的博客阅读(复制到浏览器中打开):https://pythoncat.top/posts/2023-06-24-weekly

🦄文章&教程

  1. Python 3.13 版本的计划 (英)

Faster CPython 项目(即香农计划)有了关于 3.13 版本的最新计划,这次的性能目标是减少解释器 50% 的耗时。涵盖三项主要工作:第 2 层的优化器、启用子解释器(PEP-554)、内存管理。

  1. 为什么 Numpy 并行性很重要?(英)

Numpy 是作科学计算和数据分析的最重要的库之一,并行性是提升其性能的重要手段。文章介绍了 5 种可以实现 Numpy 并行性的场景和方法:加载/保存 Numpy 数组数据、高效地计算数学函数、高效地初始化数组、并行执行数组的元素级数学运算、在进程间高效共享 Numpy 数组数据。

  1. 用少于 100 行的 Rust 使 Python 变快 100 倍 (英)

文章针对一个有性能问题的 Python 库,使用 Rust 重写并作了三轮优化后,提升了性能 100 倍。文中使用了 py-spy 库绘制火焰图,分析出了代码的瓶颈点,并以此作为优化的依据,可以看到前后火焰图的差别很大。

图片

py-spy火焰图

  1. 将 Python 项目移植到 Rust (英)

文章指出“一步到位的移植”方式存在一些问题,从而提出“迭代式移植”的方法,并给出了一个代码示例。

  1. 设计 Pythonic 的库 API (英)

如何设计出一个 Pythonic 的 API?在设计上有什么方法和基本原则呢?文章从代码结构、变量命名、错误处理、版本控制、类型注解等方面,给出了非常详细的介绍。文章较长,最后总结出 18 条 takeaways。

  1. 编译类型化的 Python (英)

Python 已支持类型提示,那能否编译 Python 代码为本地代码以提升性能呢?虽然类型提示可以提供一些性能优化,但由于 Python 的动态特性和灵活性,使得静态分析和编译非常困难。因此目前还没有一种方法可以将 Python 代码编译成本地代码以提高性能。

  1. pytest 的夹具很神奇!(英)

夹具(fixture)是在测试前设置和准备必要数据的一种机制,可以将测试数据和测试代码分离。文章介绍了 pytest 中夹具的基本用法,以及与 Django 项目的结合使用。

  1. 探析 Python 字典的实现原理 (英)

这是一个系列文章,支持用可视化的调试方式探析 Python字典的实现原理。这篇文章介绍了如何通过哈希表实现字典,以及如何解决哈希冲突。

图片

在列表中搜索的可视化

  1. Flask vs Django:选择完美的 Python Web 框架 (英)

Python 最主流的两个 Web 框架是 Flask 和 Django,文章深入比较了它们的主要功能、优势与缺点、流行的插件和使用场景等,让读者更方便做出自己的选择。

  1. 为什么不告诉人们“简单地”使用 pyenv、poetry、anaconda (英)

文章的要点是:介绍一个基本的 Python 打包流程,尽可能减少依赖和要求,并解决大多数用户的打包问题。文中列出了一些常见的打包问题,并提供了一些解决方案,同时指出了一些常见的打包工具(如 homebrew、pyenv、anaconda、poetry)的缺点。

  1. PyScript 中的 Asyncio (英)

文章介绍了在 PyScript/Pyodide 中使用 async/await/asyncio 来编写并发代码,还介绍了 Pyodide.Webloop 的实现,该实现允许 async/await 与浏览器事件循环一起使用。

  1. 线程的问题及其解决方案 (英)

上期周刊第一则分享中的三篇文章偏向于支持隐式的 async,有读者建议再呈现一些支持显式 async 的观点。这篇文章的要点是:线程会使本地推理变得困难,而本地推理是软件开发中最重要的事情之一。因此,应该避免使用线程,而使用异步编程模型,如回调、promise、协程等。同时,文章还提到了使用隐式协程的风险,因为它们可能会导致与线程相同的问题。(@Plutonium 投稿)

🐿️项目&资源

  1. PyQt-Fluent-Widgets:基于 PyQt5 的 Fluent Design 风格组件库

目前开源且美观实用的 PyQt/PySide 组件库很少,所以作者照着 WinUI3 的设计稿写了这个 Fluent Design 风格的组件库,支持亮暗主题无缝切换和自定义主题色,支持 PyQt5/PyQt6/PySide2/PySide6 ,搭配 QtDesigner 可以快速设计出美观的界面。(来自@shokokawaii)

图片

  1. pyvibe:使用 Python 生成样式化的 HTML 页面 (英)

PyVibe是一个用于创建网页的 Python 库,让 Python 开发者快速构建前端页面,简化 UI 开发。PyVibe 返回一个 HTML 字符串,可用于静态页面、Flask 函数、Pyodide 动态客户端呈现。

图片

PyVibe生成标题及文本的示例

  1. pynecone:纯 Python 的 Web 框架 (英)

Pynecone 发布于 2022 年 12 月,已获得 9K 星星,可谓十分火爆。它是一个用于构建和部署 Web 程序的全栈框架,提供了 50+ 内置组件,支持创建复杂的布局和使用 CSS 的全部功能来设置样式。

图片

Pynecone文档及演示项目

  1. pytudes:短小精悍的 Python 编程练习内容 (英)

这个项目包含了一些短小却很有挑战性的项目代码,既有“Advent of Code”历年的年度编程挑战活动的题目,也有“The Riddler”的系列数学谜题,还有文字谜题、概率问题等,甚至有使用 Python 解任何的数独题、实现一个 lisp 解释器,等等。

  1. recognize-anything:Recognize Anything 模型和 Tag2Text 模型 (英)

Recognize Anything Model 是一种图像标记模型,可以高精度地识别任何常见类别;Tag2Text 是一种以标签为指导的视觉语言模型,可以支持字幕、检索和标签。这个项目是这两个模型的代码实现。

图片

对比不同模型的物体标注能力

  1. ask-multiple-pdfs:支持与多个 PDF 聊天的 Langchain 程序 (英)

支持使用自然语言同时与多个 PDF 文件进行对话。项目使用了 streamlit,可在浏览器中显示用户界面。

图片

实现原理图

  1. DeepKE:用于知识图谱提取和及构建的开放工具包 (英)

DeepKE 是用于知识图谱构建的知识提取工具包,支持 cnSchema、低资源、文档级和多模态场景的实体、关系和属性提取。三个主要功能:命名实体识别、关系提取、属性提取。项目提供了详细的文档、教程和在线演示。

图片

模型的框架

  1. awesome-DevOps:精选的 DevOps 平台、工具、实践和资源的列表 (英)

一个“awesome”系列仓库,收录了关于 DevOps 的方方面面的内容,包含各种平台、自动化、CI/CD、代码管理、网络服务器、数据库、监控工具、网关、混沌工程,等等。

🥂讨论&问题

  1. Hacker News:Our Plan for Python 3.13 (英)

一则热门讨论,话题关于 Python 3.13 版本的开发计划。不出意外,大部分的留言都围绕着 GIL,赞成与反对声皆有。

  1. 在你最喜欢的编程语言中,有哪些很优雅的代码库?(英)

这也是一则 HN 上的帖子,既引起了关于编程语言本身的讨论,也涉及不同编程语言生态中的一些优秀的项目。有趣的是,有三则关于 Python 的留言都推荐了我们在上文中分享的pytudes项目!

责任编辑:武晓燕 来源: 豌豆花下猫
相关推荐

2016-09-12 14:05:27

PythonPython解释器Web

2023-07-31 13:42:33

苹果微软Python

2019-07-24 13:42:34

Python编程语言代码

2023-10-18 10:48:44

Python解释器

2010-02-03 15:01:33

Python 解释器

2010-02-01 17:11:45

Python 解释器

2022-01-05 08:58:08

Python解释器编程语言

2014-01-21 09:15:12

Python函数

2010-02-01 13:55:12

Python 解释器

2014-01-21 09:42:32

Python代码对象

2010-02-01 17:41:54

Python 解释器

2010-02-22 16:40:22

Python解释器

2010-03-04 11:07:21

Python解释器

2011-09-26 11:22:49

360提速

2023-10-10 15:32:09

veImageXWeb 图片

2018-09-18 15:58:46

硬盘JVMPython

2010-12-01 14:36:16

趋势科技Web信誉查询

2020-01-10 18:04:01

Python编程语言Windows

2023-05-26 16:42:08

WindowsPython开发

2014-04-18 09:31:04

PystonDropboxPython
点赞
收藏

51CTO技术栈公众号