跳到内容

工具链管理

Rye 的独特之处在于它不使用系统 Python 安装。相反,它自己下载和管理 Python 安装(称为工具链)。目前,Rye 支持三种类型的工具链,需要一些了解。

固定工具链

要使项目使用特定工具链,请将工具链的名称写入 .python-version 文件或使用 pin 命令。对于固定 cpython,可以省略 cpython@ 前缀。

固定可下载版本意味着 Rye 在需要时会自动获取它。默认情况下,工具链固定到一个精确的版本。这意味着即使您写了 rye pin [email protected],一个非常具体的 cpython 版本也会被写入到 .python-version 文件中。从 Rye 0.5.0 开始,可以执行“松散”固定。

rye pin --relaxed [email protected]

这将保留 .python-version 文件中的 3.11,Rye 将为虚拟环境使用最新的可用兼容版本。

0.5.0 中更改

添加了使用 rye pin --relaxed 的松散固定。

非原生架构

0.14.0 中新增

添加了对获取和固定非原生架构的支持。

默认情况下,固定用于运行机器的架构。这意味着如果您在具有 aarch64 架构的 mac 上固定 [email protected],您将使用该 CPU 架构的 cpython 解释器。可以通过在 python 系列名称中添加 -{arch} 来选择不同的架构。例如,要强制使用 x86_64 版本,您需要像这样固定

请注意,此类自定义固定不会反映在 pyproject.toml 中,而只会反映在 .python-version 中。

列出工具链

要查看安装了哪些工具链,rye toolchain list 会打印一个列表。

rye toolchain list
[email protected] (C:\Users\armin\.rye\py\[email protected]\install\python.exe)
[email protected] (C:\Users\armin\.rye\py\[email protected]\python.exe)

要查看可以安装哪些工具链,还可以传递 --include-downloadable

rye toolchain list --include-downloadable

获取工具链

通常 Rye 会自动下载工具链,但可以使用 rye toolchain fetch(也称为 rye fetch)显式获取它们。

rye toolchain fetch [email protected]

从 Rye 0.19.0 开始,fetch 的参数从当前固定推断而来。这意味着您也可以按如下方式获取

rye pin 3.10
rye fetch

工具链从两个来源获取

您也可以将工具链获取到特定位置。在这种情况下,解释器不会存储在 Rye 通常查询它的地方,而是存储在特定位置。除非手动注册,否则 Rye 将无法使用它。然而,这对于调试或高级设置很有用。

rye toolchain fetch [email protected] --target-path=my-interpreter

如果您想在不安装 rye 的情况下使用 rye 解释器获取,您可能需要导出 RYE_NO_AUTO_INSTALL 环境变量并将其设置为 1,否则安装程序将会启动。

注册工具链

此外,可以使用 rye toolchain register 命令注册外部工具链。

rye toolchain register /path/to/python

工具链的名称是根据解释器选择的。例如,链接常规 cpython 安装将被称为 cpython@version,而链接 pypy 将显示为 pypy@version。从 Rye 0.5.0 开始,如果它是调试构建,则会将 -dbg 附加到工具链的名称。要覆盖名称,您可以传递 --name

rye toolchain register --name=custom /path/to/python

删除工具链

要删除已获取的工具链,请运行 rye toolchain remove。请注意,这也适用于链接的工具链。

rye toolchain remove [email protected]

警告

删除正在使用的工具链将导致引用它的虚拟环境损坏。

构建信息

0.31.0 中新增

在 Rye 0.31.0 之前,Python 安装是使用构建信息获取的。您可以看到这一点,因为 ~/.rye/py/INTERPRETER 中的文件夹结构略有不同。您不会在 [email protected]/bin/python3 中找到它,而是会发现一个额外的 install 文件夹([email protected]/install/bin/python3)以及包含中间构建输出的 build 文件夹。从 0.31.0 开始,默认情况下会删除构建信息。如果您想恢复它,您可以使用 --build-info 显式获取,也可以将 behavior.fetch-with-build-info 配置标志设置为 true。

rye config --set-bool behavior.fetch-with-build-info=true