Skip to main content

One post tagged with "Rye"

View All Tags

Rye 是一个现代化的 Python 包管理工具,旨在简化 Python 项目的管理和构建流程。 它提供了更快的依赖解析和更简单的项目配置方式。 本文将带您了解如何使用 Rye 来管理您的 Python 项目。

在我们深入介绍安装和基本使用指南之前,重要的是让您了解Rye实际上是什么。 Rye是一个一站式工具。其理念是,作为Python开发人员,您需要了解的只有Rye, 因为Rye是您进入体验的起点。

作为Rye用户,您甚至不需要自己安装Python,因为Rye会替您完成这一切。 这意味着要使用Rye,您只需要安装Rye,其他工作由Rye自己完成。

一旦Rye安装在您的系统上,它可以为您自动安装Python解释器,可以指定版本, 从软件包索引安装软件包,管理虚拟环境并进行幕后管理等。

工具对比

工具优势劣势
Rye- 自动管理虚拟环境
- 依赖解析速度快
- 简化项目初始化和配置
- 相对较新
- 社区支持和生态系统尚未完全成熟
Pip- 简单
- 广泛支持
- 与 PyPI 的直接集成
- 缺乏内置的虚拟环境管理
Conda- 强大的环境管理
- 支持多语言
- 适合科学计算
- 较大的安装包
- 可能引入不必要的复杂性
Poetry- 强大的依赖管理
- 简化的项目配置
- 在大型项目中速度较慢
Pipenv- 自动管理虚拟环境
- 简化的依赖管理
- 速度较慢
- 与其他工具集成性较差

安装 Rye

Rye安装有一个优点,那就是:不需要提前安装Python环境。 不像pippipenvpoetry等工具,需要提前安装Python环境。

虽然Anaconda/MiniConda也不需要提前安装环境,有一些包做了优化加速(比如Numpy之类的), 但是Anaconda系列的包管理工具比较大,不适合所有场景。尤其是Anaconda有一个缺点就是: Anaconda不好升级,导致不能指定高于某个版本的Python环境。

当然Rye也有缺点,就是比较新,可能不像pip那样稳定和广泛支持。 但是Rye的一大好处就是可以严格管理Python依赖包的版本,并且可以将开发依赖和生产依赖分开。 脚本启动等功能,也是Rye的一大特色。(由于Rye是Rust编写,所以,可能是受到Rust的Cargo工具的启发,我猜是这样)

Linux/MacOS安装方式

curl -sSf https://rye.astral.sh/get | bash

Windows上安装Rye

安装连接

安装完成后,您可以通过运行 rye --version 来验证安装是否成功。

创建新项目

使用 Rye 创建新项目非常简单。使用init子命令即可,可以指定init更多的选项,比如指定Python版本等。

只需在命令行中运行以下命令:

rye init your_project_name
# 或
rye init your_project_name --py=3.11 # 指定 Python 版本
# 或
rye init your_project_name -p=3.11 # 简写,指定Python版本

这将创建一个名为 your_project_name 的新目录,并在其中初始化一个新的 Python 项目。

添加依赖

Rye 使得添加和管理项目依赖变得非常简单。要向项目添加依赖,可以使用以下命令:

rye add diffusers
# 或
rye add diffusers --dev # 添加开发依赖
# 或
rye add diffusers==0.30.0 # 指定版本
# 或
rye add "diffusers[torch]" # 指定依赖包的额外功能

这将把 diffusers 包添加到项目的依赖中,并自动更新项目的依赖文件。

移除依赖

如果您需要移除某个依赖,只需运行:

rye remove diffusers

这将从项目中移除 diffusers 包,并更新依赖文件。

管理虚拟环境

Rye 自动为每个项目创建和管理虚拟环境。 您无需手动激活或管理虚拟环境,Rye 会在需要时自动为您处理只要进入到创建的项目目录中,Rye会自动激活虚拟环境。可以执行python -V检查Python版本。

Rye虚拟环境

构建和发布

Rye 还提供了简单的构建和发布工具。要构建项目,可以使用:

rye build

构建完成后,您可以通过以下命令发布项目:

rye publish

确保您已配置好发布所需的凭据。

运行项目脚本

要运行脚本,需要做以下几步:

  1. 需要配置pyproject.toml文件中的scripts字段。
[project.scripts]
my-hello-script = 'hello:main'
  1. 创建脚本文件hello.py,并在其中定义main函数。
def main():
print("Run Rye main")
tip

这里需要注意,要把hello.py文件放在项目的根目录下的src的目录下。

  1. 运行项目脚本
rye run my-hello-script

这里的my-hello-script就是pyproject.toml文件中的scripts字段中的my-hello-script

在项目中使用Python直接运行脚本

由于进入了rye init创建的项目后,就会默认激活虚拟环境,所以,可以直接使用Python运行脚本。

比如,创建一个demo.py文件,内容如下:

def main():
print("Hello Rye")

运行方式:

python demo.py
tip

只要*.py放在项目根目录下,或者项目的其他目录下,都可以直接使用Python运行脚本。

Rye环境中使用python运行脚本

总结

Python 的包管理器一直都是一个痛点问题。Rye 是一个新的工具,它试图解决这个问题。

Rye 是一个强大的工具,为 Python 开发者提供了简洁高效的包管理体验。 通过简化依赖管理、自动化虚拟环境以及提供便捷的构建和发布功能, Rye 帮助开发者更专注于编写代码,而不是管理项目配置。

希望这篇指南能帮助您更好地使用 Rye 来管理您的 Python 项目!如果您有任何问题或建议,欢迎在评论区留言。

鱼雪