Flask 之父用 Rust 编写 Python 包管理工具:Rye

出品|开源中国

Python Web 框架 Flask 作者 Armin 近日发布了新的开源项目 Rye。这是一款采用 Rust 编写的 Python 包管理工具,Armin 称其可作为 poetry/pip/pipenv/pyenv/venv/virtualenv/pdm/hatch 等同类工具的替代方案。

Armin 表示 Rye 是给自己打造的 “一站式” 工具,满足了他对 Python 的所有需求,包括安装和管理 Python 软件包、管理 pyproject.toml 文件、安装和卸载依赖项、在后台管理 virtualenvs,以及支持 monorepos 和全局工具安装。

下面是 Rye 的部分功能:

  • 自动安装和管理 Python

$?rye?pin?3.11$?rye?run?python
Python?3.11.1?(main,?Jan?16?2023,?16:02:03)?[Clang?15.0.7?]?on?darwin
Type?"help",?"copyright",?"credits"?or?"license"?for?more?information.>>>
  • 全局安装隔离工具

$?rye?install?maturin
  • 管理本地 pyproject.toml 的依赖项并自动更新 virtualenv

$?rye?add?flask$?rye?sync

上面是使用 Rye 的运行截图,完整演示:https://www.youtube.com/watch?v=CyI8TBuKPF0

虽然 Rye 还处于实验性阶段,并且是纯粹的个人导向项目,但凭借着 Armin 在 Python 社区的知名度以及其采用 Rust 编写这一大亮点,Rye 的 Star 数量短短两天就超过了 2000,并上榜 GitHub Trending 第一名。Armin 还嘚瑟地调侃道,目前比 LLM 和 AI 更火爆的技术就是 Python 打包!

Armin 谈论了创建 Rye 的初衷,用下面这张图表达了他对 Python 包管理现状的感受 —— 由于缺乏统一的标准,因此诞生了满足不同需求和场景的许多不同工具。

而他希望的终端用户体验是:使用 “单一工具” 就能满足所有工程管理需求,包括 Python 项目、Python 解释器、全局安装的工具和 monorepos 等。这对任何类型的构建系统都是开放的,支持 Python 开发者每天遇到的问题。

虽然 Rye 是一个新项目,而且目前不够稳定,但也有不少开发者都对 Armin 的理念表示认同。欢迎各位体验后也来分享一波心得。

项目地址:https://github.com/mitsuhiko/rye