跳到内容

CLI 参考

uv

一个极其快速的 Python 包管理器。

用法

uv [OPTIONS] <COMMAND>

命令

uv auth

管理身份验证

uv run

运行命令或脚本

uv init

创建新项目

uv add

为项目添加依赖项

uv remove

从项目中移除依赖项

uv version

读取或更新项目版本

uv sync

更新项目环境

uv lock

更新项目的锁文件

uv export

将项目的锁文件导出为其他格式

uv tree

显示项目的依赖树

uv format

格式化项目中的 Python 代码

uv tool

运行和安装由 Python 包提供的命令

uv python

管理 Python 版本和安装

uv pip

使用兼容 pip 的接口管理 Python 包

uv venv

创建虚拟环境

uv build

将 Python 包构建为源代码分发包 (sdist) 和 wheel

uv publish

将分发包上传到索引

uv cache

管理 uv 的缓存

uv self

管理 uv 可执行文件

uv help

显示命令的文档

uv auth

管理身份验证

用法

uv auth [OPTIONS] <COMMAND>

命令

uv auth login

登录服务

uv auth logout

登出服务

uv auth token

显示服务的身份验证令牌

uv auth dir

显示 uv 凭据目录的路径

uv auth login

登录服务

用法

uv auth login [OPTIONS] <SERVICE>

参数

SERVICE

要登录的服务的域名或 URL

Options (选项)

--allow-insecure-host, --trusted-host allow-insecure-host

允许与主机建立不安全连接。

可以多次提供。

期望接收主机名(例如 localhost)、主机-端口对(例如 localhost:8080)或 URL(例如 https://)。

警告:此列表中的主机不会根据系统的证书存储进行验证。仅在具有受信任来源的安全网络中使用 --allow-insecure-host,因为它会绕过 SSL 验证,可能会使您面临 MITM 攻击。

也可以通过 UV_INSECURE_HOST 环境变量设置。

--cache-dir cache-dir

缓存目录的路径。

默认在 macOS 和 Linux 上为 $XDG_CACHE_HOME/uv$HOME/.cache/uv,在 Windows 上为 %LOCALAPPDATA%\uv\cache

要查看缓存目录的位置,请运行 uv cache dir

也可以通过 UV_CACHE_DIR 环境变量设置。

--color color-choice

控制输出中颜色的使用。

默认情况下,uv 在写入终端时会自动检测对颜色的支持。

可选值

  • auto:仅在输出到支持颜色的终端或 TTY 时启用彩色输出
  • always:无论检测到的环境如何,都启用彩色输出
  • never:禁用彩色输出
--config-file config-file

用于配置的 uv.toml 文件路径。

虽然 uv 配置可以包含在 pyproject.toml 文件中,但在这种上下文下是不允许的。

也可以通过 UV_CONFIG_FILE 环境变量设置。

--directory directory

在运行命令之前切换到指定目录。

相对路径将以给定目录为基础进行解析。

参见 --project 仅更改项目根目录。

也可以通过 UV_WORKING_DIR 环境变量设置。

--help, -h

显示此命令的简明帮助信息

--keyring-provider keyring-provider

用于存储凭据的密钥环提供程序。

login 仅支持 --keyring-provider native,它通过 uv 内置的集成使用系统密钥环。

也可以通过 UV_KEYRING_PROVIDER 环境变量设置。

可选值

  • disabled:不使用密钥环进行凭据查找
  • subprocess:使用 keyring 命令进行凭据查找
--managed-python

要求使用 uv 管理的 Python 版本 [环境变量: UV_MANAGED_PYTHON=]

默认情况下,uv 优先使用其管理的 Python 版本。但是,如果未安装 uv 管理的 Python,它将使用系统 Python 版本。此选项将禁用系统 Python 版本的调用。

--native-tls

是否从平台的原生存储中加载 TLS 证书 [环境变量: UV_NATIVE_TLS=]

默认情况下,uv 从绑定的 webpki-roots crate 中加载证书。webpki-roots 是一组来自 Mozilla 的可靠信任根,在 uv 中包含它们可提高可移植性和性能(特别是在 macOS 上)。

然而,在某些情况下,您可能希望使用平台的原生证书存储,特别是当您依赖于系统证书存储中包含的公司信任根(例如强制代理)时。

--no-cache, --no-cache-dir, -n

避免从缓存中读取或写入缓存,而是在操作期间使用临时目录

也可以通过 UV_NO_CACHE 环境变量设置。

--no-config

避免发现配置文件(pyproject.tomluv.toml)。

通常,会在当前目录、父目录或用户配置目录中发现配置文件。

也可以通过 UV_NO_CONFIG 环境变量设置。

--no-managed-python

禁用对 uv 管理的 Python 版本的使用 [环境变量: UV_NO_MANAGED_PYTHON=]

相反,uv 将在系统上搜索合适的 Python 版本。

--no-progress

隐藏所有进度输出 [环境变量: UV_NO_PROGRESS=]

例如,微调器或进度条。

--no-python-downloads

禁用 Python 的自动下载。

--offline

禁用网络访问 [环境变量: UV_OFFLINE=]

禁用时,uv 将仅使用本地缓存的数据和本地可用的文件。

--password password

用于服务的密码。

使用 - 从标准输入读取密码。

--project project

在给定目录中发现项目。

所有 pyproject.tomluv.toml.python-version 文件都将通过从项目根目录向上遍历目录树来发现,项目的虚拟环境 (.venv) 也是如此。

其他命令行参数(例如相对路径)将相对于当前工作目录进行解析。

参见 --directory 以完全更改工作目录。

当在 uv pip 接口中使用时,此设置无效。

也可以通过 UV_PROJECT 环境变量设置。

--quiet, -q

使用安静输出。

重复此选项,例如 -qq,将启用静默模式,其中 uv 不会将任何输出写入标准输出。

--token, -t token

用于服务的令牌。

用户名将设置为 __token__

使用 - 从标准输入读取令牌。

--username, -u username

用于服务的用户名

--verbose, -v

使用详细输出。

您可以使用 RUST_LOG 环境变量配置细粒度日志记录。(https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html#directives

uv auth logout

登出服务

用法

uv auth logout [OPTIONS] <SERVICE>

参数

SERVICE

要从中登出的服务的域名或 URL

Options (选项)

--allow-insecure-host, --trusted-host allow-insecure-host

允许与主机建立不安全连接。

可以多次提供。

期望接收主机名(例如 localhost)、主机-端口对(例如 localhost:8080)或 URL(例如 https://)。

警告:此列表中的主机不会根据系统的证书存储进行验证。仅在具有受信任来源的安全网络中使用 --allow-insecure-host,因为它会绕过 SSL 验证,可能会使您面临 MITM 攻击。

也可以通过 UV_INSECURE_HOST 环境变量设置。

--cache-dir cache-dir

缓存目录的路径。

默认在 macOS 和 Linux 上为 $XDG_CACHE_HOME/uv$HOME/.cache/uv,在 Windows 上为 %LOCALAPPDATA%\uv\cache

要查看缓存目录的位置,请运行 uv cache dir

也可以通过 UV_CACHE_DIR 环境变量设置。

--color color-choice

控制输出中颜色的使用。

默认情况下,uv 在写入终端时会自动检测对颜色的支持。

可选值

  • auto:仅在输出到支持颜色的终端或 TTY 时启用彩色输出
  • always:无论检测到的环境如何,都启用彩色输出
  • never:禁用彩色输出
--config-file config-file

用于配置的 uv.toml 文件路径。

虽然 uv 配置可以包含在 pyproject.toml 文件中,但在这种上下文下是不允许的。

也可以通过 UV_CONFIG_FILE 环境变量设置。

--directory directory

在运行命令之前切换到指定目录。

相对路径将以给定目录为基础进行解析。

参见 --project 仅更改项目根目录。

也可以通过 UV_WORKING_DIR 环境变量设置。

--help, -h

显示此命令的简明帮助信息

--keyring-provider keyring-provider

用于存储凭据的密钥环提供程序。

logout 仅支持 --keyring-provider native,它通过 uv 内置的集成使用系统密钥环。

也可以通过 UV_KEYRING_PROVIDER 环境变量设置。

可选值

  • disabled:不使用密钥环进行凭据查找
  • subprocess:使用 keyring 命令进行凭据查找
--managed-python

要求使用 uv 管理的 Python 版本 [环境变量: UV_MANAGED_PYTHON=]

默认情况下,uv 优先使用其管理的 Python 版本。但是,如果未安装 uv 管理的 Python,它将使用系统 Python 版本。此选项将禁用系统 Python 版本的调用。

--native-tls

是否从平台的原生存储中加载 TLS 证书 [环境变量: UV_NATIVE_TLS=]

默认情况下,uv 从绑定的 webpki-roots crate 中加载证书。webpki-roots 是一组来自 Mozilla 的可靠信任根,在 uv 中包含它们可提高可移植性和性能(特别是在 macOS 上)。

然而,在某些情况下,您可能希望使用平台的原生证书存储,特别是当您依赖于系统证书存储中包含的公司信任根(例如强制代理)时。

--no-cache, --no-cache-dir, -n

避免从缓存中读取或写入缓存,而是在操作期间使用临时目录

也可以通过 UV_NO_CACHE 环境变量设置。

--no-config

避免发现配置文件(pyproject.tomluv.toml)。

通常,会在当前目录、父目录或用户配置目录中发现配置文件。

也可以通过 UV_NO_CONFIG 环境变量设置。

--no-managed-python

禁用对 uv 管理的 Python 版本的使用 [环境变量: UV_NO_MANAGED_PYTHON=]

相反,uv 将在系统上搜索合适的 Python 版本。

--no-progress

隐藏所有进度输出 [环境变量: UV_NO_PROGRESS=]

例如,微调器或进度条。

--no-python-downloads

禁用 Python 的自动下载。

--offline

禁用网络访问 [环境变量: UV_OFFLINE=]

禁用时,uv 将仅使用本地缓存的数据和本地可用的文件。

--project project

在给定目录中发现项目。

所有 pyproject.tomluv.toml.python-version 文件都将通过从项目根目录向上遍历目录树来发现,项目的虚拟环境 (.venv) 也是如此。

其他命令行参数(例如相对路径)将相对于当前工作目录进行解析。

参见 --directory 以完全更改工作目录。

当在 uv pip 接口中使用时,此设置无效。

也可以通过 UV_PROJECT 环境变量设置。

--quiet, -q

使用安静输出。

重复此选项,例如 -qq,将启用静默模式,其中 uv 不会将任何输出写入标准输出。

--username, -u username

要登出的用户名

--verbose, -v

使用详细输出。

您可以使用 RUST_LOG 环境变量配置细粒度日志记录。(https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html#directives

uv auth token

显示服务的身份验证令牌

用法

uv auth token [OPTIONS] <SERVICE>

参数

SERVICE

要查询的服务的域名或 URL

Options (选项)

--allow-insecure-host, --trusted-host allow-insecure-host

允许与主机建立不安全连接。

可以多次提供。

期望接收主机名(例如 localhost)、主机-端口对(例如 localhost:8080)或 URL(例如 https://)。

警告:此列表中的主机不会根据系统的证书存储进行验证。仅在具有受信任来源的安全网络中使用 --allow-insecure-host,因为它会绕过 SSL 验证,可能会使您面临 MITM 攻击。

也可以通过 UV_INSECURE_HOST 环境变量设置。

--cache-dir cache-dir

缓存目录的路径。

默认在 macOS 和 Linux 上为 $XDG_CACHE_HOME/uv$HOME/.cache/uv,在 Windows 上为 %LOCALAPPDATA%\uv\cache

要查看缓存目录的位置,请运行 uv cache dir

也可以通过 UV_CACHE_DIR 环境变量设置。

--color color-choice

控制输出中颜色的使用。

默认情况下,uv 在写入终端时会自动检测对颜色的支持。

可选值

  • auto:仅在输出到支持颜色的终端或 TTY 时启用彩色输出
  • always:无论检测到的环境如何,都启用彩色输出
  • never:禁用彩色输出
--config-file config-file

用于配置的 uv.toml 文件路径。

虽然 uv 配置可以包含在 pyproject.toml 文件中,但在这种上下文下是不允许的。

也可以通过 UV_CONFIG_FILE 环境变量设置。

--directory directory

在运行命令之前切换到指定目录。

相对路径将以给定目录为基础进行解析。

参见 --project 仅更改项目根目录。

也可以通过 UV_WORKING_DIR 环境变量设置。

--help, -h

显示此命令的简明帮助信息

--keyring-provider keyring-provider

用于读取凭据的密钥环提供程序

也可以通过 UV_KEYRING_PROVIDER 环境变量设置。

可选值

  • disabled:不使用密钥环进行凭据查找
  • subprocess:使用 keyring 命令进行凭据查找
--managed-python

要求使用 uv 管理的 Python 版本 [环境变量: UV_MANAGED_PYTHON=]

默认情况下,uv 优先使用其管理的 Python 版本。但是,如果未安装 uv 管理的 Python,它将使用系统 Python 版本。此选项将禁用系统 Python 版本的调用。

--native-tls

是否从平台的原生存储中加载 TLS 证书 [环境变量: UV_NATIVE_TLS=]

默认情况下,uv 从绑定的 webpki-roots crate 中加载证书。webpki-roots 是一组来自 Mozilla 的可靠信任根,在 uv 中包含它们可提高可移植性和性能(特别是在 macOS 上)。

然而,在某些情况下,您可能希望使用平台的原生证书存储,特别是当您依赖于系统证书存储中包含的公司信任根(例如强制代理)时。

--no-cache, --no-cache-dir, -n

避免从缓存中读取或写入缓存,而是在操作期间使用临时目录

也可以通过 UV_NO_CACHE 环境变量设置。

--no-config

避免发现配置文件(pyproject.tomluv.toml)。

通常,会在当前目录、父目录或用户配置目录中发现配置文件。

也可以通过 UV_NO_CONFIG 环境变量设置。

--no-managed-python

禁用对 uv 管理的 Python 版本的使用 [环境变量: UV_NO_MANAGED_PYTHON=]

相反,uv 将在系统上搜索合适的 Python 版本。

--no-progress

隐藏所有进度输出 [环境变量: UV_NO_PROGRESS=]

例如,微调器或进度条。

--no-python-downloads

禁用 Python 的自动下载。

--offline

禁用网络访问 [环境变量: UV_OFFLINE=]

禁用时,uv 将仅使用本地缓存的数据和本地可用的文件。

--project project

在给定目录中发现项目。

所有 pyproject.tomluv.toml.python-version 文件都将通过从项目根目录向上遍历目录树来发现,项目的虚拟环境 (.venv) 也是如此。

其他命令行参数(例如相对路径)将相对于当前工作目录进行解析。

参见 --directory 以完全更改工作目录。

当在 uv pip 接口中使用时,此设置无效。

也可以通过 UV_PROJECT 环境变量设置。

--quiet, -q

使用安静输出。

重复此选项,例如 -qq,将启用静默模式,其中 uv 不会将任何输出写入标准输出。

--username, -u username

要查询的用户名

--verbose, -v

使用详细输出。

您可以使用 RUST_LOG 环境变量配置细粒度日志记录。(https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html#directives

uv auth dir

显示 uv 凭据目录的路径。

默认情况下,凭据存储在 uv 数据目录中(Unix 上为 $XDG_DATA_HOME/uv/credentials$HOME/.local/share/uv/credentials,Windows 上为 %APPDATA%\uv\data\credentials)。

凭据目录可以使用 $UV_CREDENTIALS_DIR 覆盖。

仅在使用纯文本后端时凭据存储在此目录中,与使用系统密钥环的原生后端相对。

用法

uv auth dir [OPTIONS] [SERVICE]

参数

SERVICE

要查询的服务的域名或 URL

Options (选项)

--allow-insecure-host, --trusted-host allow-insecure-host

允许与主机建立不安全连接。

可以多次提供。

期望接收主机名(例如 localhost)、主机-端口对(例如 localhost:8080)或 URL(例如 https://)。

警告:此列表中的主机不会根据系统的证书存储进行验证。仅在具有受信任来源的安全网络中使用 --allow-insecure-host,因为它会绕过 SSL 验证,可能会使您面临 MITM 攻击。

也可以通过 UV_INSECURE_HOST 环境变量设置。

--cache-dir cache-dir

缓存目录的路径。

默认在 macOS 和 Linux 上为 $XDG_CACHE_HOME/uv$HOME/.cache/uv,在 Windows 上为 %LOCALAPPDATA%\uv\cache

要查看缓存目录的位置,请运行 uv cache dir

也可以通过 UV_CACHE_DIR 环境变量设置。

--color color-choice

控制输出中颜色的使用。

默认情况下,uv 在写入终端时会自动检测对颜色的支持。

可选值

  • auto:仅在输出到支持颜色的终端或 TTY 时启用彩色输出
  • always:无论检测到的环境如何,都启用彩色输出
  • never:禁用彩色输出
--config-file config-file

用于配置的 uv.toml 文件路径。

虽然 uv 配置可以包含在 pyproject.toml 文件中,但在这种上下文下是不允许的。

也可以通过 UV_CONFIG_FILE 环境变量设置。

--directory directory

在运行命令之前切换到指定目录。

相对路径将以给定目录为基础进行解析。

参见 --project 仅更改项目根目录。

也可以通过 UV_WORKING_DIR 环境变量设置。

--help, -h

显示此命令的简明帮助信息

--managed-python

要求使用 uv 管理的 Python 版本 [环境变量: UV_MANAGED_PYTHON=]

默认情况下,uv 优先使用其管理的 Python 版本。但是,如果未安装 uv 管理的 Python,它将使用系统 Python 版本。此选项将禁用系统 Python 版本的调用。

--native-tls

是否从平台的原生存储中加载 TLS 证书 [环境变量: UV_NATIVE_TLS=]

默认情况下,uv 从绑定的 webpki-roots crate 中加载证书。webpki-roots 是一组来自 Mozilla 的可靠信任根,在 uv 中包含它们可提高可移植性和性能(特别是在 macOS 上)。

然而,在某些情况下,您可能希望使用平台的原生证书存储,特别是当您依赖于系统证书存储中包含的公司信任根(例如强制代理)时。

--no-cache, --no-cache-dir, -n

避免从缓存中读取或写入缓存,而是在操作期间使用临时目录

也可以通过 UV_NO_CACHE 环境变量设置。

--no-config

避免发现配置文件(pyproject.tomluv.toml)。

通常,会在当前目录、父目录或用户配置目录中发现配置文件。

也可以通过 UV_NO_CONFIG 环境变量设置。

--no-managed-python

禁用对 uv 管理的 Python 版本的使用 [环境变量: UV_NO_MANAGED_PYTHON=]

相反,uv 将在系统上搜索合适的 Python 版本。

--no-progress

隐藏所有进度输出 [环境变量: UV_NO_PROGRESS=]

例如,微调器或进度条。

--no-python-downloads

禁用 Python 的自动下载。

--offline

禁用网络访问 [环境变量: UV_OFFLINE=]

禁用时,uv 将仅使用本地缓存的数据和本地可用的文件。

--project project

在给定目录中发现项目。

所有 pyproject.tomluv.toml.python-version 文件都将通过从项目根目录向上遍历目录树来发现,项目的虚拟环境 (.venv) 也是如此。

其他命令行参数(例如相对路径)将相对于当前工作目录进行解析。

参见 --directory 以完全更改工作目录。

当在 uv pip 接口中使用时,此设置无效。

也可以通过 UV_PROJECT 环境变量设置。

--quiet, -q

使用安静输出。

重复此选项,例如 -qq,将启用静默模式,其中 uv 不会将任何输出写入标准输出。

--verbose, -v

使用详细输出。

您可以使用 RUST_LOG 环境变量配置细粒度日志记录。(https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html#directives

uv run

运行命令或脚本。

确保命令在 Python 环境中运行。

当与以 .py 结尾的文件或 HTTP(S) URL 一起使用时,该文件将被视为脚本并使用 Python 解释器运行,即 uv run file.py 等效于 uv run python file.py。对于 URL,脚本在执行前会被临时下载。如果脚本包含内联依赖元数据,它将被安装到一个隔离的临时环境中。当与 - 一起使用时,输入将从标准输入读取,并作为 Python 脚本处理。

在项目中,项目环境将在调用命令之前被创建和更新。

在项目之外使用时,如果可以在当前目录或父目录中找到虚拟环境,该命令将在该环境中运行。否则,该命令将在发现的解释器的环境中运行。

默认情况下,项目或工作空间是从当前工作目录发现的。但是,当使用 --preview-features target-workspace-discovery 时,项目或工作空间将改为从目标脚本所在的目录发现。

命令(或脚本)后的参数不会被解释为 uv 的参数。uv 的所有选项必须在命令之前提供,例如 uv run --verbose foo。可以使用 -- 将命令与 uv 选项隔开以增强清晰度,例如 uv run --python 3.12 -- python

用法

uv run [OPTIONS] [COMMAND]

Options (选项)

--active

优先使用激活的虚拟环境,而不是项目的虚拟环境。

如果项目虚拟环境已激活或没有激活的虚拟环境,则此选项无效。

--all-extras

包含所有可选依赖项。

此选项仅在项目中运行时可用。

--all-groups

包含所有依赖组中的依赖项。

可以使用 --no-group 排除特定组。

--all-packages

在安装了所有工作空间成员的情况下运行命令。

工作空间的环境 (.venv) 会被更新以包含所有工作空间成员。

通过 --extra--group 或相关选项指定的任何额外内容或组将应用于所有工作空间成员。

--allow-insecure-host, --trusted-host allow-insecure-host

允许与主机建立不安全连接。

可以多次提供。

期望接收主机名(例如 localhost)、主机-端口对(例如 localhost:8080)或 URL(例如 https://)。

警告:此列表中的主机不会根据系统的证书存储进行验证。仅在具有受信任来源的安全网络中使用 --allow-insecure-host,因为它会绕过 SSL 验证,可能会使您面临 MITM 攻击。

也可以通过 UV_INSECURE_HOST 环境变量设置。

--cache-dir cache-dir

缓存目录的路径。

默认在 macOS 和 Linux 上为 $XDG_CACHE_HOME/uv$HOME/.cache/uv,在 Windows 上为 %LOCALAPPDATA%\uv\cache

要查看缓存目录的位置,请运行 uv cache dir

也可以通过 UV_CACHE_DIR 环境变量设置。

--color color-choice

控制输出中颜色的使用。

默认情况下,uv 在写入终端时会自动检测对颜色的支持。

可选值

  • auto:仅在输出到支持颜色的终端或 TTY 时启用彩色输出
  • always:无论检测到的环境如何,都启用彩色输出
  • never:禁用彩色输出
--compile-bytecode, --compile

安装后将 Python 文件编译为字节码。

默认情况下,uv 不会将 Python (.py) 文件编译为字节码 (__pycache__/*.pyc);相反,编译是在模块首次导入时延迟执行的。对于启动时间至关重要的用例(例如 CLI 应用程序和 Docker 容器),可以启用此选项,以牺牲较长的安装时间换取更快的启动时间。

启用后,uv 将处理整个 site-packages 目录(包括当前操作未修改的包)以保持一致性。像 pip 一样,它也会忽略错误。

也可以通过 UV_COMPILE_BYTECODE 环境变量设置。

--config-file config-file

用于配置的 uv.toml 文件路径。

虽然 uv 配置可以包含在 pyproject.toml 文件中,但在这种上下文下是不允许的。

也可以通过 UV_CONFIG_FILE 环境变量设置。

--config-setting, --config-settings, -C config-setting

传递给 PEP 517 构建后端的设置,指定为 KEY=VALUE

--config-settings-package, --config-settings-package config-settings-package

传递给特定包的 PEP 517 构建后端的设置,指定为 PACKAGE:KEY=VALUE

--default-index default-index

默认包索引的 URL(默认:https://pypi.ac.cn/simple)。

接受符合 PEP 503(简单存储库 API)的存储库,或以相同格式布局的本地目录。

此标志给出的索引优先级低于通过 --index 标志指定的所有其他索引。

也可以通过 UV_DEFAULT_INDEX 环境变量设置。

--directory directory

在运行命令之前切换到指定目录。

相对路径将以给定目录为基础进行解析。

参见 --project 仅更改项目根目录。

也可以通过 UV_WORKING_DIR 环境变量设置。

--env-file env-file

.env 文件加载环境变量。

可以多次提供,后续文件会覆盖之前文件中定义的变量值。

也可以通过 UV_ENV_FILE 环境变量设置。

--exact

执行精确同步,移除无关的包。

启用后,uv 将从环境中移除任何无关的包。默认情况下,uv run 将仅进行满足需求所需的最小更改。

--exclude-newer exclude-newer

将候选包限制为给定日期之前上传的包。

接受 RFC 3339 时间戳(例如 2006-12-02T02:07:43Z)、相同格式的本地日期(例如 2006-12-02,基于系统配置的时区解析)、“友好”持续时间(例如 24 hours1 week30 days)或 ISO 8601 持续时间(例如 PT24HP7DP30D)。

持续时间不尊重本地时区的语义,始终假定一天为 24 小时(例如忽略夏令时转换)并解析为固定的秒数。不允许使用月和年等日历单位。

也可以通过 UV_EXCLUDE_NEWER 环境变量设置。

--exclude-newer-package exclude-newer-package

将特定包的候选包限制为给定日期之前上传的包。

接受 PACKAGE=DATE 格式的包-日期对,其中 DATE 是 RFC 3339 时间戳(例如 2006-12-02T02:07:43Z)、相同格式的本地日期(例如 2006-12-02,基于系统配置的时区解析)、“友好”持续时间(例如 24 hours1 week30 days)或 ISO 8601 持续时间(例如 PT24HP7DP30D)。

持续时间不尊重本地时区的语义,始终假定一天为 24 小时(例如忽略夏令时转换)并解析为固定的秒数。不允许使用月和年等日历单位。

可以为不同的包多次提供。

--extra extra

包含来自指定额外名称的可选依赖项。

可以提供多次。

此选项仅在项目中运行时可用。

--extra-index-url extra-index-url

(已弃用:请改用 --index)除 --index-url 之外要使用的额外包索引 URL。

接受符合 PEP 503(简单存储库 API)的存储库,或以相同格式布局的本地目录。

通过此标志提供的所有索引的优先级都高于 --index-url(默认为 PyPI)指定的索引。当提供多个 --extra-index-url 标志时,较早的值具有更高的优先级。

也可以通过 UV_EXTRA_INDEX_URL 环境变量设置。

除在注册表索引中找到的位置外,还要搜索候选分发包的位置。

如果是路径,则目标必须是包含顶层 wheel 文件 (.whl) 或源代码分发包(例如 .tar.gz.zip)的目录。

如果是 URL,页面必须包含符合上述格式的包文件链接的平面列表。

也可以通过 UV_FIND_LINKS 环境变量设置。

--fork-strategy fork-strategy

在跨 Python 版本和平台选择给定包的多个版本时要使用的策略。

默认情况下,uv 将优化为为每个支持的 Python 版本 (requires-python) 选择每个包的最新版本,同时最小化跨平台的选定版本数量。

fewest 下,uv 将最小化每个包的选定版本数量,优先选择与更广泛支持的 Python 版本或平台兼容的旧版本。

也可以通过 UV_FORK_STRATEGY 环境变量设置。

可选值

  • fewest:优化为为每个包选择最少数量的版本。如果旧版本与更广泛的支持 Python 版本或平台兼容,则可能优先选择旧版本
  • requires-python:优化为为每个支持的 Python 版本选择每个包的最新支持版本
--frozen

在不更新 uv.lock 文件的情况下运行 [环境变量: UV_FROZEN=]

它不检查锁文件是否是最新的,而是直接使用锁文件中的版本作为真理来源。如果锁文件缺失,uv 将报错退出。如果 pyproject.toml 包含尚未包含在锁文件中的依赖项更改,它们将不会出现在环境中。

--group group

包含来自指定依赖组的依赖项。

可以多次提供。

--gui-script

将给定的路径作为 Python GUI 脚本运行。

使用 --gui-script 将尝试将路径解析为 PEP 723 脚本并使用 pythonw.exe 运行,无论其扩展名如何。仅在 Windows 上可用。

--help, -h

显示此命令的简明帮助信息

--index index

除默认索引外,解析依赖项时要使用的 URL。

接受符合 PEP 503(简单存储库 API)的存储库,或以相同格式布局的本地目录。

通过此标志提供的所有索引的优先级都高于 --default-index(默认为 PyPI)指定的索引。当提供多个 --index 标志时,较早的值具有更高的优先级。

不支持将索引名称用作值。相对路径必须使用 Unix 上的 ./../,或 Windows 上的 .\\..\\./../ 与索引名称区分开来。

也可以通过 UV_INDEX 环境变量设置。

--index-strategy index-strategy

在针对多个索引 URL 进行解析时要使用的策略。

默认情况下,uv 将在给定包可用的第一个索引处停止,并将解析限制为该第一个索引中存在的那些包 (first-index)。这可以防止“依赖混淆”攻击,攻击者可以在该攻击中以相同的名称将恶意包上传到备用索引。

也可以通过 UV_INDEX_STRATEGY 环境变量设置。

可选值

  • first-index:仅使用第一个返回给定包名称匹配结果的索引中的结果
  • unsafe-first-match:搜索跨所有索引的每个包名称,在转到下一个索引之前耗尽第一个索引中的版本
  • unsafe-best-match:搜索跨所有索引的每个包名称,优先选择找到的“最佳”版本。如果包版本存在于多个索引中,则仅查看第一个索引的条目
--index-url, -i index-url

(已弃用:请改用 --default-index)Python 包索引的 URL(默认:https://pypi.ac.cn/simple)。

接受符合 PEP 503(简单存储库 API)的存储库,或以相同格式布局的本地目录。

此标志给出的索引优先级低于通过 --extra-index-url 标志指定的所有其他索引。

也可以通过 UV_INDEX_URL 环境变量设置。

--isolated

在隔离的虚拟环境中运行命令 [环境变量: UV_ISOLATED=]

通常,项目环境会被重用以提高性能。此选项强制为项目使用全新的环境,强制在依赖项和需求声明之间进行严格的隔离。

项目仍会使用可编辑安装。

当与 --with--with-requirements 一起使用时,额外的依赖项仍将分层在第二个环境中。

--keyring-provider keyring-provider

尝试使用 keyring 进行索引 URL 的身份验证。

目前,仅支持 --keyring-provider subprocess,它将 uv 配置为使用 keyring CLI 来处理身份验证。

默认为 disabled

也可以通过 UV_KEYRING_PROVIDER 环境变量设置。

可选值

  • disabled:不使用密钥环进行凭据查找
  • subprocess:使用 keyring 命令进行凭据查找

从全局缓存安装包时要使用的方法。

默认在 macOS 和 Linux 上为 clone(也称为写时复制),在 Windows 上为 hardlink

警告:不建议使用符号链接链接模式,因为它们会在缓存和目标环境之间创建紧密的耦合。例如,清除缓存 (uv cache clean) 将通过移除底层源文件来破坏所有已安装的包。请谨慎使用符号链接。

也可以通过 UV_LINK_MODE 环境变量设置。

可选值

  • clone:将包从源克隆(即写时复制)到目标
  • copy:将包从源复制到目标
  • hardlink:将包从源硬链接到目标
  • symlink:将包从源符号链接到目标
--locked

断言 uv.lock 将保持不变 [环境变量: UV_LOCKED=]

要求锁文件是最新的。如果锁文件缺失或需要更新,uv 将报错退出。

--managed-python

要求使用 uv 管理的 Python 版本 [环境变量: UV_MANAGED_PYTHON=]

默认情况下,uv 优先使用其管理的 Python 版本。但是,如果未安装 uv 管理的 Python,它将使用系统 Python 版本。此选项将禁用系统 Python 版本的调用。

--module, -m

运行 Python 模块。

等效于 python -m <module>

--native-tls

是否从平台的原生存储中加载 TLS 证书 [环境变量: UV_NATIVE_TLS=]

默认情况下,uv 从绑定的 webpki-roots crate 中加载证书。webpki-roots 是一组来自 Mozilla 的可靠信任根,在 uv 中包含它们可提高可移植性和性能(特别是在 macOS 上)。

然而,在某些情况下,您可能希望使用平台的原生证书存储,特别是当您依赖于系统证书存储中包含的公司信任根(例如强制代理)时。

--no-binary

不安装预构建的 wheel。

给定的包将从源代码构建和安装。如果可用,解析器仍将使用预构建的 wheel 来提取包元数据。

也可以通过 UV_NO_BINARY 环境变量设置。

--no-binary-package no-binary-package

不为特定包安装预构建的 wheel

也可以通过 UV_NO_BINARY_PACKAGE 环境变量设置。

--no-build

不构建源代码分发包。

启用后,解析将不会运行任意 Python 代码。已构建的源代码分发包的缓存 wheel 将被重用,但需要构建分发包的操作将报错退出。

也可以通过 UV_NO_BUILD 环境变量设置。

--no-build-isolation

构建源代码分发包时禁用隔离。

假定 PEP 518 指定的构建依赖项已安装。

也可以通过 UV_NO_BUILD_ISOLATION 环境变量设置。

--no-build-isolation-package no-build-isolation-package

为特定包构建源代码分发包时禁用隔离。

假定包的 PEP 518 指定的构建依赖项已安装。

--no-build-package no-build-package

不为特定包构建源代码分发包

也可以通过 UV_NO_BUILD_PACKAGE 环境变量设置。

--no-cache, --no-cache-dir, -n

避免从缓存中读取或写入缓存,而是在操作期间使用临时目录

也可以通过 UV_NO_CACHE 环境变量设置。

--no-config

避免发现配置文件(pyproject.tomluv.toml)。

通常,会在当前目录、父目录或用户配置目录中发现配置文件。

也可以通过 UV_NO_CONFIG 环境变量设置。

--no-default-groups

忽略默认依赖组。

uv 默认包含 tool.uv.default-groups 中定义的组。此选项将禁用该选项,但是,仍可以使用 --group 包含特定组。

也可以通过 UV_NO_DEFAULT_GROUPS 环境变量设置。

--no-dev

禁用开发依赖组 [环境变量: UV_NO_DEV=]

此选项是 --no-group dev 的别名。参见 --no-default-groups 以禁用所有默认组。

此选项仅在项目中运行时可用。

--no-editable

将任何可编辑依赖项(包括项目和任何工作空间成员)作为非可编辑项安装 [环境变量: UV_NO_EDITABLE=]

--no-env-file

避免从 .env 文件读取环境变量 [环境变量: UV_NO_ENV_FILE=]

--no-extra no-extra

如果提供了 --all-extras,则排除指定的可选依赖项。

可以多次提供。

--no-group no-group

禁用指定的依赖组。

此选项始终优先于默认组、--all-groups--group

可以多次提供。

也可以通过 UV_NO_GROUP 环境变量设置。

--no-index

忽略注册表索引(例如 PyPI),而是依赖直接 URL 依赖项和通过 --find-links 提供的依赖项

--no-managed-python

禁用对 uv 管理的 Python 版本的使用 [环境变量: UV_NO_MANAGED_PYTHON=]

相反,uv 将在系统上搜索合适的 Python 版本。

--no-progress

隐藏所有进度输出 [环境变量: UV_NO_PROGRESS=]

例如,微调器或进度条。

--no-project, --no_workspace

避免发现项目或工作空间。

不再在当前目录和父目录中搜索项目,而是运行在由 --with 需求填充的隔离临时环境中。

如果虚拟环境已激活或在当前目录或父目录中找到,它将被使用,就像没有项目或工作空间一样。

--no-python-downloads

禁用 Python 的自动下载。

--no-sources

解析依赖项时忽略 tool.uv.sources 表。用于根据标准兼容、可发布的包元数据进行锁定,而不是使用任何工作空间、Git、URL 或本地路径源

也可以通过 UV_NO_SOURCES 环境变量设置。

--no-sources-package no-sources-package

不要为指定包使用 tool.uv.sources 表中的源

也可以通过 UV_NO_SOURCES_PACKAGE 环境变量设置。

--no-sync

避免同步虚拟环境 [环境变量: UV_NO_SYNC=]

暗示 --frozen,因为项目依赖项将被忽略(即,锁文件不会更新,因为环境无论如何都不会同步)。

--offline

禁用网络访问 [环境变量: UV_OFFLINE=]

禁用时,uv 将仅使用本地缓存的数据和本地可用的文件。

--only-dev

仅包含开发依赖组。

项目及其依赖项将被省略。

此选项是 --only-group dev 的别名。暗示 --no-default-groups

--only-group only-group

仅包含来自指定依赖组的依赖项。

项目及其依赖项将被省略。

可以提供多次。暗示 --no-default-groups

--package package

在工作空间中的特定包中运行命令。

如果工作空间成员不存在,uv 将报错退出。

--prerelease prerelease

考虑预发布版本时要使用的策略。

默认情况下,uv 将接受 发布预发布版本的包,以及在声明的需求说明符中包含显式预发布标记的一方需求 (if-necessary-or-explicit)。

也可以通过 UV_PRERELEASE 环境变量设置。

可选值

  • disallow:不允许所有预发布版本
  • allow:允许所有预发布版本
  • if-necessary:如果包的所有版本都是预发布版本,则允许预发布版本
  • explicit:允许在版本需求中具有显式预发布标记的一方包的预发布版本
  • if-necessary-or-explicit:如果包的所有版本都是预发布版本,或者如果包在版本需求中具有显式预发布标记,则允许预发布版本
--project project

在给定目录中发现项目。

所有 pyproject.tomluv.toml.python-version 文件都将通过从项目根目录向上遍历目录树来发现,项目的虚拟环境 (.venv) 也是如此。

其他命令行参数(例如相对路径)将相对于当前工作目录进行解析。

参见 --directory 以完全更改工作目录。

当在 uv pip 接口中使用时,此设置无效。

也可以通过 UV_PROJECT 环境变量设置。

--python, -p python

运行环境要使用的 Python 解释器。

如果解释器请求由已发现的环境满足,则将使用该环境。

请参阅 uv python 以查看支持的请求格式。

也可以通过 UV_PYTHON 环境变量设置。

--python-platform python-platform

应该为其安装需求的目标平台。

表示为“目标三元组”,这是一个描述目标平台的字符串,包括 CPU、供应商和操作系统名称,例如 x86_64-unknown-linux-gnuaarch64-apple-darwin

当针对 macOS (Darwin) 时,默认最小版本为 13.0。使用 MACOSX_DEPLOYMENT_TARGET 指定不同的最小版本,例如 14.0

当针对 iOS 时,默认最小版本为 13.0。使用 IPHONEOS_DEPLOYMENT_TARGET 指定不同的最小版本,例如 14.0

当针对 Android 时,默认最小 Android API 级别为 24。使用 ANDROID_API_LEVEL 指定不同的最小版本,例如 26

警告:指定时,uv 将选择与 目标 平台兼容的 wheel;因此,安装的分发包可能与 当前 平台不兼容。相反,从源代码构建的任何分发包都可能与 目标 平台不兼容,因为它们是为 当前 平台构建的。--python-platform 选项旨在用于高级用例。

可选值

  • windowsx86_64-pc-windows-msvc 的别名,Windows 的默认目标
  • linuxx86_64-unknown-linux-gnu 的别名,Linux 的默认目标
  • macosaarch64-apple-darwin 的别名,macOS 的默认目标
  • x86_64-pc-windows-msvc:64 位 x86 Windows 目标
  • aarch64-pc-windows-msvc:ARM64 Windows 目标
  • i686-pc-windows-msvc:32 位 x86 Windows 目标
  • x86_64-unknown-linux-gnu:x86 Linux 目标。等效于 x86_64-manylinux_2_28
  • aarch64-apple-darwin:ARM 架构 macOS 目标,如 Apple Silicon 设备上所见
  • x86_64-apple-darwin:x86 macOS 目标
  • aarch64-unknown-linux-gnu:ARM64 Linux 目标。等效于 aarch64-manylinux_2_28
  • aarch64-unknown-linux-musl:ARM64 Linux 目标
  • x86_64-unknown-linux-muslx86_64 Linux 目标
  • riscv64-unknown-linux:RISCV64 Linux 目标
  • x86_64-manylinux2014manylinux2014 平台的 x86_64 目标。等效于 x86_64-manylinux_2_17
  • x86_64-manylinux_2_17manylinux_2_17 平台的 x86_64 目标
  • x86_64-manylinux_2_28manylinux_2_28 平台的 x86_64 目标
  • x86_64-manylinux_2_31manylinux_2_31 平台的 x86_64 目标
  • x86_64-manylinux_2_32manylinux_2_32 平台的 x86_64 目标
  • x86_64-manylinux_2_33manylinux_2_33 平台的 x86_64 目标
  • x86_64-manylinux_2_34manylinux_2_34 平台的 x86_64 目标
  • x86_64-manylinux_2_35manylinux_2_35 平台的 x86_64 目标
  • x86_64-manylinux_2_36manylinux_2_36 平台的 x86_64 目标
  • x86_64-manylinux_2_37manylinux_2_37 平台的 x86_64 目标
  • x86_64-manylinux_2_38manylinux_2_38 平台的 x86_64 目标
  • x86_64-manylinux_2_39manylinux_2_39 平台的 x86_64 目标
  • x86_64-manylinux_2_40manylinux_2_40 平台的 x86_64 目标
  • aarch64-manylinux2014manylinux2014 平台的 ARM64 目标。等效于 aarch64-manylinux_2_17
  • aarch64-manylinux_2_17manylinux_2_17 平台的 ARM64 目标
  • aarch64-manylinux_2_28manylinux_2_28 平台的 ARM64 目标
  • aarch64-manylinux_2_31manylinux_2_31 平台的 ARM64 目标
  • aarch64-manylinux_2_32manylinux_2_32 平台的 ARM64 目标
  • aarch64-manylinux_2_33manylinux_2_33 平台的 ARM64 目标
  • aarch64-manylinux_2_34manylinux_2_34 平台的 ARM64 目标
  • aarch64-manylinux_2_35manylinux_2_35 平台的 ARM64 目标
  • aarch64-manylinux_2_36manylinux_2_36 平台的 ARM64 目标
  • aarch64-manylinux_2_37manylinux_2_37 平台的 ARM64 目标
  • aarch64-manylinux_2_38manylinux_2_38 平台的 ARM64 目标
  • aarch64-manylinux_2_39manylinux_2_39 平台的 ARM64 目标
  • aarch64-manylinux_2_40manylinux_2_40 平台的 ARM64 目标
  • aarch64-linux-android:ARM64 Android 目标
  • x86_64-linux-androidx86_64 Android 目标
  • wasm32-pyodide2024:使用 Pyodide 2024 平台的 wasm32 目标。旨在与 Python 3.12 一起使用
  • arm64-apple-ios:iOS 设备的 ARM64 目标
  • arm64-apple-ios-simulator:iOS 模拟器的 ARM64 目标
  • x86_64-apple-ios-simulator:iOS 模拟器的 x86_64 目标
--quiet, -q

使用安静输出。

重复此选项,例如 -qq,将启用静默模式,其中 uv 不会将任何输出写入标准输出。

--refresh

刷新所有缓存数据

--refresh-package refresh-package

刷新特定包的缓存数据

--reinstall, --force-reinstall

重新安装所有包,无论它们是否已安装。暗示 --refresh

--reinstall-package reinstall-package

重新安装特定包,无论它是否已安装。暗示 --refresh-package

--resolution resolution

在为给定包需求选择不同的兼容版本时要使用的策略。

默认情况下,uv 将使用每个包的最新兼容版本 (highest)。

也可以通过 UV_RESOLUTION 环境变量设置。

可选值

  • highest:解析每个包的最高兼容版本
  • lowest:解析每个包的最低兼容版本
  • lowest-direct:解析任何直接依赖项的最低兼容版本,以及任何传递依赖项的最高兼容版本
--script, -s

将给定的路径作为 Python 脚本运行。

使用 --script 将尝试将路径解析为 PEP 723 脚本,无论其扩展名如何。

--upgrade, -U

允许包升级,忽略任何现有输出文件中的固定版本。暗示 --refresh

--upgrade-package, -P upgrade-package

允许升级特定包,忽略任何现有输出文件中的固定版本。暗示 --refresh-package

--verbose, -v

使用详细输出。

您可以使用 RUST_LOG 环境变量配置细粒度日志记录。(https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html#directives

--with, -w with

在安装了给定包的情况下运行。

在项目中,这些依赖项将以分层方式叠在项目环境之上的单独临时环境中。这些依赖项允许与项目指定的依赖项发生冲突。

--with-editable with-editable

在安装了给定可编辑包的情况下运行。

在项目中,这些依赖项将以分层方式叠在项目环境之上的单独临时环境中。这些依赖项允许与项目指定的依赖项发生冲突。

--with-requirements with-requirements

在使用给定文件中列出的包的情况下运行。

支持以下格式:requirements.txt、具有内联元数据的 .py 文件和 pylock.toml

应用与 --with 相同的环境语义。

不允许使用 pyproject.tomlsetup.pysetup.cfg 文件。

uv init

创建新项目。

遵循 pyproject.toml 规范。

如果目标位置已存在 pyproject.toml,uv 将报错退出。

如果在目标路径的任何父目录中找到 pyproject.toml,该项目将被添加为父项目的工作空间成员。

在需要之前不会创建某些项目状态,例如,项目虚拟环境 (.venv) 和锁文件 (uv.lock) 会在首次同步期间延迟创建。

用法

uv init [OPTIONS] [PATH]

参数

PATH

用于项目/脚本的路径。

初始化应用程序或库时默认为当前工作目录;初始化脚本时必需。接受相对路径和绝对路径。

如果在目标路径的任何父目录中找到 pyproject.toml,该项目将被添加为父项目的工作空间成员,除非提供了 --no-workspace

Options (选项)

--allow-insecure-host, --trusted-host allow-insecure-host

允许与主机建立不安全连接。

可以多次提供。

期望接收主机名(例如 localhost)、主机-端口对(例如 localhost:8080)或 URL(例如 https://)。

警告:此列表中的主机不会根据系统的证书存储进行验证。仅在具有受信任来源的安全网络中使用 --allow-insecure-host,因为它会绕过 SSL 验证,可能会使您面临 MITM 攻击。

也可以通过 UV_INSECURE_HOST 环境变量设置。

--app, --application

为应用程序创建项目。

如果不请求 --lib,这是默认行为。

此项目类型适用于 Web 服务器、脚本和命令行界面。

默认情况下,应用程序不打算作为 Python 包构建和分发。可以使用 --package 选项来创建可分发的应用程序,例如,如果您想通过 PyPI 分发命令行界面。

--author-from author-from

填写 pyproject.toml 中的 authors 字段。

默认情况下,uv 将尝试从某些来源(例如 Git)推断作者信息 (auto)。使用 --author-from git 仅从 Git 配置中推断。使用 --author-from none 以避免推断作者信息。

可选值

  • auto:自动从某些来源(例如 Git)获取作者信息
  • git:仅从 Git 配置中获取作者信息
  • none:不推断作者信息
--bare

仅创建 pyproject.toml

禁用创建额外文件,如 README.mdsrc/ 树、.python-version 文件等。

--script 结合使用时,脚本将仅包含内联元数据标题。

--build-backend build-backend

为项目初始化选择的构建后端。

隐式设置 --package

也可以通过 UV_INIT_BUILD_BACKEND 环境变量设置。

可选值

  • uv:使用 uv 作为项目构建后端
  • hatch:使用 hatchling 作为项目构建后端
  • flit:使用 flit-core 作为项目构建后端
  • pdm:使用 pdm-backend 作为项目构建后端
  • poetry:使用 poetry-core 作为项目构建后端
  • setuptools:使用 setuptools 作为项目构建后端
  • maturin:使用 maturin 作为项目构建后端
  • scikit:使用 scikit-build-core 作为项目构建后端
--cache-dir cache-dir

缓存目录的路径。

默认在 macOS 和 Linux 上为 $XDG_CACHE_HOME/uv$HOME/.cache/uv,在 Windows 上为 %LOCALAPPDATA%\uv\cache

要查看缓存目录的位置,请运行 uv cache dir

也可以通过 UV_CACHE_DIR 环境变量设置。

--color color-choice

控制输出中颜色的使用。

默认情况下,uv 在写入终端时会自动检测对颜色的支持。

可选值

  • auto:仅在输出到支持颜色的终端或 TTY 时启用彩色输出
  • always:无论检测到的环境如何,都启用彩色输出
  • never:禁用彩色输出
--config-file config-file

用于配置的 uv.toml 文件路径。

虽然 uv 配置可以包含在 pyproject.toml 文件中,但在这种上下文下是不允许的。

也可以通过 UV_CONFIG_FILE 环境变量设置。

--description description

设置项目描述

--directory directory

在运行命令之前切换到指定目录。

相对路径将以给定目录为基础进行解析。

参见 --project 仅更改项目根目录。

也可以通过 UV_WORKING_DIR 环境变量设置。

--help, -h

显示此命令的简明帮助信息

--lib, --library

为库创建项目。

库是一个打算作为 Python 包构建和分发的项目。

--managed-python

要求使用 uv 管理的 Python 版本 [环境变量: UV_MANAGED_PYTHON=]

默认情况下,uv 优先使用其管理的 Python 版本。但是,如果未安装 uv 管理的 Python,它将使用系统 Python 版本。此选项将禁用系统 Python 版本的调用。

--name name

项目名称。

默认为目录名称。

--native-tls

是否从平台的原生存储中加载 TLS 证书 [环境变量: UV_NATIVE_TLS=]

默认情况下,uv 从绑定的 webpki-roots crate 中加载证书。webpki-roots 是一组来自 Mozilla 的可靠信任根,在 uv 中包含它们可提高可移植性和性能(特别是在 macOS 上)。

然而,在某些情况下,您可能希望使用平台的原生证书存储,特别是当您依赖于系统证书存储中包含的公司信任根(例如强制代理)时。

--no-cache, --no-cache-dir, -n

避免从缓存中读取或写入缓存,而是在操作期间使用临时目录

也可以通过 UV_NO_CACHE 环境变量设置。

--no-config

避免发现配置文件(pyproject.tomluv.toml)。

通常,会在当前目录、父目录或用户配置目录中发现配置文件。

也可以通过 UV_NO_CONFIG 环境变量设置。

--no-description

禁用项目描述

--no-managed-python

禁用对 uv 管理的 Python 版本的使用 [环境变量: UV_NO_MANAGED_PYTHON=]

相反,uv 将在系统上搜索合适的 Python 版本。

--no-package

不要将项目设置为构建为 Python 包。

不包含项目的 [build-system]

使用 --app 时的默认行为。

--no-pin-python

不要为项目创建 .python-version 文件。

默认情况下,uv 将创建一个包含发现的 Python 解释器次要版本的 .python-version 文件,这将导致后续 uv 命令使用该版本。

--no-progress

隐藏所有进度输出 [环境变量: UV_NO_PROGRESS=]

例如,微调器或进度条。

--no-python-downloads

禁用 Python 的自动下载。

--no-readme

不要创建 README.md 文件

--no-workspace, --no-project

避免发现工作空间并创建一个独立项目。

默认情况下,uv 会在当前目录或任何父目录中搜索工作空间。

--offline

禁用网络访问 [环境变量: UV_OFFLINE=]

禁用时,uv 将仅使用本地缓存的数据和本地可用的文件。

--package

将项目设置为构建为 Python 包。

为项目定义 [build-system]

使用 --lib--build-backend 时的默认行为。

当使用 --app 时,这将包含一个 [project.scripts] 入口点并使用 src/ 项目结构。

--project project

在给定目录中发现项目。

所有 pyproject.tomluv.toml.python-version 文件都将通过从项目根目录向上遍历目录树来发现,项目的虚拟环境 (.venv) 也是如此。

其他命令行参数(例如相对路径)将相对于当前工作目录进行解析。

参见 --directory 以完全更改工作目录。

当在 uv pip 接口中使用时,此设置无效。

也可以通过 UV_PROJECT 环境变量设置。

--python, -p python

用于确定最低支持 Python 版本的 Python 解释器。

请参阅 uv python 以查看支持的请求格式。

也可以通过 UV_PYTHON 环境变量设置。

--quiet, -q

使用安静输出。

重复此选项,例如 -qq,将启用静默模式,其中 uv 不会将任何输出写入标准输出。

--script

创建脚本。

脚本是一个包含嵌入式元数据的独立文件,列出了其依赖项以及任何 Python 版本要求,符合 PEP 723 规范。

PEP 723 脚本可以直接使用 uv run 执行。

默认情况下,添加对系统 Python 版本的需求;使用 --python 指定备用的 Python 版本要求。

--vcs vcs

为项目初始化版本控制系统。

默认情况下,uv 将初始化 Git 存储库 (git)。使用 --vcs none 显式避免初始化版本控制系统。

可选值

  • git:使用 Git 进行版本控制
  • none:不使用任何版本控制系统
--verbose, -v

使用详细输出。

您可以使用 RUST_LOG 环境变量配置细粒度日志记录。(https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html#directives

uv add

为项目添加依赖项。

依赖项被添加到项目的 pyproject.toml 文件中。

如果给定的依赖项已存在,它将被更新为新的版本说明符,除非它包含与现有说明符不同的标记,在这种情况下将为该依赖项添加另一个条目。

锁文件和项目环境将被更新以反映添加的依赖项。要跳过更新锁文件,请使用 --frozen。要跳过更新环境,请使用 --no-sync

如果无法找到任何请求的依赖项,uv 将报错退出,除非提供了 --frozen 标志,在这种情况下 uv 将逐字添加依赖项,而不检查它们是否存在或与项目兼容。

uv 将在当前目录或任何父目录中搜索项目。如果找不到项目,uv 将报错退出。

用法

uv add [OPTIONS] <PACKAGES|--requirements <REQUIREMENTS>>

参数

PACKAGES

要添加的包,作为 PEP 508 需求(例如 ruff==0.5.0

Options (选项)

--active

优先使用激活的虚拟环境,而不是项目的虚拟环境。

如果项目虚拟环境已激活或没有激活的虚拟环境,则此选项无效。

--allow-insecure-host, --trusted-host allow-insecure-host

允许与主机建立不安全连接。

可以多次提供。

期望接收主机名(例如 localhost)、主机-端口对(例如 localhost:8080)或 URL(例如 https://)。

警告:此列表中的主机不会根据系统的证书存储进行验证。仅在具有受信任来源的安全网络中使用 --allow-insecure-host,因为它会绕过 SSL 验证,可能会使您面临 MITM 攻击。

也可以通过 UV_INSECURE_HOST 环境变量设置。

--bounds bounds

添加依赖项时使用的版本说明符类型。

在将依赖项添加到项目时,如果没有提供约束或 URL,则会根据该包的最新兼容版本添加约束。默认使用下界约束,例如 >=1.2.3

当提供 --frozen 时,不执行任何解析,并且始终在没有约束的情况下添加依赖项。

此选项处于预览阶段,可能在任何未来版本中更改。

可选值

  • lower:仅下界,例如 >=1.2.3
  • major:允许相同的主要版本,类似于语义版本控制的插入符,例如 >=1.2.3, <2.0.0
  • minor:允许相同的次要版本,类似于语义版本控制的波浪号,例如 >=1.2.3, <1.3.0
  • exact:固定确切版本,例如 ==1.2.3
--branch branch

从 Git 添加依赖项时要使用的分支

--cache-dir cache-dir

缓存目录的路径。

默认在 macOS 和 Linux 上为 $XDG_CACHE_HOME/uv$HOME/.cache/uv,在 Windows 上为 %LOCALAPPDATA%\uv\cache

要查看缓存目录的位置,请运行 uv cache dir

也可以通过 UV_CACHE_DIR 环境变量设置。

--color color-choice

控制输出中颜色的使用。

默认情况下,uv 在写入终端时会自动检测对颜色的支持。

可选值

  • auto:仅在输出到支持颜色的终端或 TTY 时启用彩色输出
  • always:无论检测到的环境如何,都启用彩色输出
  • never:禁用彩色输出
--compile-bytecode, --compile

安装后将 Python 文件编译为字节码。

默认情况下,uv 不会将 Python (.py) 文件编译为字节码 (__pycache__/*.pyc);相反,编译是在模块首次导入时延迟执行的。对于启动时间至关重要的用例(例如 CLI 应用程序和 Docker 容器),可以启用此选项,以牺牲较长的安装时间换取更快的启动时间。

启用后,uv 将处理整个 site-packages 目录(包括当前操作未修改的包)以保持一致性。像 pip 一样,它也会忽略错误。

也可以通过 UV_COMPILE_BYTECODE 环境变量设置。

--config-file config-file

用于配置的 uv.toml 文件路径。

虽然 uv 配置可以包含在 pyproject.toml 文件中,但在这种上下文下是不允许的。

也可以通过 UV_CONFIG_FILE 环境变量设置。

--config-setting, --config-settings, -C config-setting

传递给 PEP 517 构建后端的设置,指定为 KEY=VALUE

--config-settings-package, --config-settings-package config-settings-package

传递给特定包的 PEP 517 构建后端的设置,指定为 PACKAGE:KEY=VALUE

--constraints, --constraint, -c constraints

使用给定的需求文件约束版本。

约束文件是类似于 requirements.txt 的文件,仅控制已安装需求的 版本。约束 不会 添加到项目的 pyproject.toml 文件中,但 在依赖项解析期间被遵守。

这等同于 pip 的 --constraint 选项。

也可以通过 UV_CONSTRAINT 环境变量设置。

--default-index default-index

默认包索引的 URL(默认:https://pypi.ac.cn/simple)。

接受符合 PEP 503(简单存储库 API)的存储库,或以相同格式布局的本地目录。

此标志给出的索引优先级低于通过 --index 标志指定的所有其他索引。

也可以通过 UV_DEFAULT_INDEX 环境变量设置。

--dev

将需求添加到开发依赖组 [环境变量: UV_DEV=]

此选项是 --group dev 的别名。

--directory directory

在运行命令之前切换到指定目录。

相对路径将以给定目录为基础进行解析。

参见 --project 仅更改项目根目录。

也可以通过 UV_WORKING_DIR 环境变量设置。

--editable

将需求添加为可编辑状态

--exclude-newer exclude-newer

将候选包限制为给定日期之前上传的包。

接受 RFC 3339 时间戳(例如 2006-12-02T02:07:43Z)、相同格式的本地日期(例如 2006-12-02,基于系统配置的时区解析)、“友好”持续时间(例如 24 hours1 week30 days)或 ISO 8601 持续时间(例如 PT24HP7DP30D)。

持续时间不尊重本地时区的语义,始终假定一天为 24 小时(例如忽略夏令时转换)并解析为固定的秒数。不允许使用月和年等日历单位。

也可以通过 UV_EXCLUDE_NEWER 环境变量设置。

--exclude-newer-package exclude-newer-package

将特定包的候选包限制为给定日期之前上传的包。

接受 PACKAGE=DATE 格式的包-日期对,其中 DATE 是 RFC 3339 时间戳(例如 2006-12-02T02:07:43Z)、相同格式的本地日期(例如 2006-12-02,基于系统配置的时区解析)、“友好”持续时间(例如 24 hours1 week30 days)或 ISO 8601 持续时间(例如 PT24HP7DP30D)。

持续时间不尊重本地时区的语义,始终假定一天为 24 小时(例如忽略夏令时转换)并解析为固定的秒数。不允许使用月和年等日历单位。

可以为不同的包多次提供。

--extra extra

要为依赖项启用的额外内容。

可以提供多次。

要将此依赖项添加到可选的额外内容中,请参阅 --optional

--extra-index-url extra-index-url

(已弃用:请改用 --index)除 --index-url 之外要使用的额外包索引 URL。

接受符合 PEP 503(简单存储库 API)的存储库,或以相同格式布局的本地目录。

通过此标志提供的所有索引的优先级都高于 --index-url(默认为 PyPI)指定的索引。当提供多个 --extra-index-url 标志时,较早的值具有更高的优先级。

也可以通过 UV_EXTRA_INDEX_URL 环境变量设置。

除在注册表索引中找到的位置外,还要搜索候选分发包的位置。

如果是路径,则目标必须是包含顶层 wheel 文件 (.whl) 或源代码分发包(例如 .tar.gz.zip)的目录。

如果是 URL,页面必须包含符合上述格式的包文件链接的平面列表。

也可以通过 UV_FIND_LINKS 环境变量设置。

--fork-strategy fork-strategy

在跨 Python 版本和平台选择给定包的多个版本时要使用的策略。

默认情况下,uv 将优化为为每个支持的 Python 版本 (requires-python) 选择每个包的最新版本,同时最小化跨平台的选定版本数量。

fewest 下,uv 将最小化每个包的选定版本数量,优先选择与更广泛支持的 Python 版本或平台兼容的旧版本。

也可以通过 UV_FORK_STRATEGY 环境变量设置。

可选值

  • fewest:优化为为每个包选择最少数量的版本。如果旧版本与更广泛的支持 Python 版本或平台兼容,则可能优先选择旧版本
  • requires-python:优化为为每个支持的 Python 版本选择每个包的最新支持版本
--frozen

在不重新锁定项目的情况下添加依赖项 [环境变量: UV_FROZEN=]

项目环境将不会同步。

--group group

将需求添加到指定的依赖组。

这些需求不会包含在项目的已发布元数据中。

--help, -h

显示此命令的简明帮助信息

--index index

除默认索引外,解析依赖项时要使用的 URL。

接受符合 PEP 503(简单存储库 API)的存储库,或以相同格式布局的本地目录。

通过此标志提供的所有索引的优先级都高于 --default-index(默认为 PyPI)指定的索引。当提供多个 --index 标志时,较早的值具有更高的优先级。

不支持将索引名称用作值。相对路径必须使用 Unix 上的 ./../,或 Windows 上的 .\\..\\./../ 与索引名称区分开来。

也可以通过 UV_INDEX 环境变量设置。

--index-strategy index-strategy

在针对多个索引 URL 进行解析时要使用的策略。

默认情况下,uv 将在给定包可用的第一个索引处停止,并将解析限制为该第一个索引中存在的那些包 (first-index)。这可以防止“依赖混淆”攻击,攻击者可以在该攻击中以相同的名称将恶意包上传到备用索引。

也可以通过 UV_INDEX_STRATEGY 环境变量设置。

可选值

  • first-index:仅使用第一个返回给定包名称匹配结果的索引中的结果
  • unsafe-first-match:搜索跨所有索引的每个包名称,在转到下一个索引之前耗尽第一个索引中的版本
  • unsafe-best-match:搜索跨所有索引的每个包名称,优先选择找到的“最佳”版本。如果包版本存在于多个索引中,则仅查看第一个索引的条目
--index-url, -i index-url

(已弃用:请改用 --default-index)Python 包索引的 URL(默认:https://pypi.ac.cn/simple)。

接受符合 PEP 503(简单存储库 API)的存储库,或以相同格式布局的本地目录。

此标志给出的索引优先级低于通过 --extra-index-url 标志指定的所有其他索引。

也可以通过 UV_INDEX_URL 环境变量设置。

--keyring-provider keyring-provider

尝试使用 keyring 进行索引 URL 的身份验证。

目前,仅支持 --keyring-provider subprocess,它将 uv 配置为使用 keyring CLI 来处理身份验证。

默认为 disabled

也可以通过 UV_KEYRING_PROVIDER 环境变量设置。

可选值

  • disabled:不使用密钥环进行凭据查找
  • subprocess:使用 keyring 命令进行凭据查找
--lfs

从 Git 添加依赖项时是否使用 Git LFS

从全局缓存安装包时要使用的方法。

默认在 macOS 和 Linux 上为 clone(也称为写时复制),在 Windows 上为 hardlink

警告:不建议使用符号链接链接模式,因为它们会在缓存和目标环境之间创建紧密的耦合。例如,清除缓存 (uv cache clean) 将通过移除底层源文件来破坏所有已安装的包。请谨慎使用符号链接。

也可以通过 UV_LINK_MODE 环境变量设置。

可选值

  • clone:将包从源克隆(即写时复制)到目标
  • copy:将包从源复制到目标
  • hardlink:将包从源硬链接到目标
  • symlink:将包从源符号链接到目标
--locked

断言 uv.lock 将保持不变 [环境变量: UV_LOCKED=]

要求锁文件是最新的。如果锁文件缺失或需要更新,uv 将报错退出。

--managed-python

要求使用 uv 管理的 Python 版本 [环境变量: UV_MANAGED_PYTHON=]

默认情况下,uv 优先使用其管理的 Python 版本。但是,如果未安装 uv 管理的 Python,它将使用系统 Python 版本。此选项将禁用系统 Python 版本的调用。

--marker, -m marker

将此标记应用于所有添加的包

--native-tls

是否从平台的原生存储中加载 TLS 证书 [环境变量: UV_NATIVE_TLS=]

默认情况下,uv 从绑定的 webpki-roots crate 中加载证书。webpki-roots 是一组来自 Mozilla 的可靠信任根,在 uv 中包含它们可提高可移植性和性能(特别是在 macOS 上)。

然而,在某些情况下,您可能希望使用平台的原生证书存储,特别是当您依赖于系统证书存储中包含的公司信任根(例如强制代理)时。

--no-binary

不安装预构建的 wheel。

给定的包将从源代码构建和安装。如果可用,解析器仍将使用预构建的 wheel 来提取包元数据。

也可以通过 UV_NO_BINARY 环境变量设置。

--no-binary-package no-binary-package

不为特定包安装预构建的 wheel

也可以通过 UV_NO_BINARY_PACKAGE 环境变量设置。

--no-build

不构建源代码分发包。

启用后,解析将不会运行任意 Python 代码。已构建的源代码分发包的缓存 wheel 将被重用,但需要构建分发包的操作将报错退出。

也可以通过 UV_NO_BUILD 环境变量设置。

--no-build-isolation

构建源代码分发包时禁用隔离。

假定 PEP 518 指定的构建依赖项已安装。

也可以通过 UV_NO_BUILD_ISOLATION 环境变量设置。

--no-build-isolation-package no-build-isolation-package

为特定包构建源代码分发包时禁用隔离。

假定包的 PEP 518 指定的构建依赖项已安装。

--no-build-package no-build-package

不为特定包构建源代码分发包

也可以通过 UV_NO_BUILD_PACKAGE 环境变量设置。

--no-cache, --no-cache-dir, -n

避免从缓存中读取或写入缓存,而是在操作期间使用临时目录

也可以通过 UV_NO_CACHE 环境变量设置。

--no-config

避免发现配置文件(pyproject.tomluv.toml)。

通常,会在当前目录、父目录或用户配置目录中发现配置文件。

也可以通过 UV_NO_CONFIG 环境变量设置。

--no-index

忽略注册表索引(例如 PyPI),而是依赖直接 URL 依赖项和通过 --find-links 提供的依赖项

--no-install-local

不安装本地路径依赖项

跳过当前项目、工作空间成员和任何其他本地(路径或可编辑)包。仅安装远程/索引依赖项。在 Docker 构建中很有用,可以先缓存繁重的第三方依赖项,并将本地包单独分层。

可以使用相反的 --only-install-local 安装本地包,排除所有远程依赖项。

--no-install-package no-install-package

不安装给定的包。

默认情况下,所有项目的依赖项都会安装到环境中。--no-install-package 选项允许排除特定的包。注意,这可能导致环境损坏,应谨慎使用。

可以使用相反的 --only-install-package 安装指定的包,排除所有其他包。

--no-install-project

不安装当前项目。

默认情况下,当前项目及其所有依赖项都会安装到环境中。--no-install-project 选项允许排除项目,但仍会安装其所有依赖项。这在构建 Docker 映像等情况下特别有用,因为将项目与依赖项分开安装允许进行最佳的层缓存。

可以使用相反的 --only-install-project 安装项目本身,排除所有依赖项。

--no-install-workspace

不安装任何工作空间成员,包括当前项目。

默认情况下,所有工作空间成员及其依赖项都会安装到环境中。--no-install-workspace 选项允许排除所有工作空间成员,同时保留其依赖项。这在构建 Docker 映像等情况下特别有用,因为将工作空间与依赖项分开安装允许进行最佳的层缓存。

可以使用相反的 --only-install-workspace 安装工作空间成员,排除所有其他依赖项。

--no-managed-python

禁用对 uv 管理的 Python 版本的使用 [环境变量: UV_NO_MANAGED_PYTHON=]

相反,uv 将在系统上搜索合适的 Python 版本。

--no-progress

隐藏所有进度输出 [环境变量: UV_NO_PROGRESS=]

例如,微调器或进度条。

--no-python-downloads

禁用 Python 的自动下载。

--no-sources

解析依赖项时忽略 tool.uv.sources 表。用于根据标准兼容、可发布的包元数据进行锁定,而不是使用任何工作空间、Git、URL 或本地路径源

也可以通过 UV_NO_SOURCES 环境变量设置。

--no-sources-package no-sources-package

不要为指定包使用 tool.uv.sources 表中的源

也可以通过 UV_NO_SOURCES_PACKAGE 环境变量设置。

--no-sync

避免同步虚拟环境 [环境变量: UV_NO_SYNC=]

--no-workspace

不要将依赖项添加为工作空间成员。

默认情况下,当添加属于工作空间目录内的本地路径的依赖项时,uv 将其添加为工作空间成员;传递 --no-workspace 以将该包添加为直接路径依赖项。

--offline

禁用网络访问 [环境变量: UV_OFFLINE=]

禁用时,uv 将仅使用本地缓存的数据和本地可用的文件。

--optional optional

将需求添加到指定额外内容的包的可选依赖项中。

在安装具有 --extra 标志的项目时,可以激活该组。

要改为为此需求启用可选的额外内容,请参阅 --extra

--package package

将依赖项添加到工作空间中的特定包

--prerelease prerelease

考虑预发布版本时要使用的策略。

默认情况下,uv 将接受 发布预发布版本的包,以及在声明的需求说明符中包含显式预发布标记的一方需求 (if-necessary-or-explicit)。

也可以通过 UV_PRERELEASE 环境变量设置。

可选值

  • disallow:不允许所有预发布版本
  • allow:允许所有预发布版本
  • if-necessary:如果包的所有版本都是预发布版本,则允许预发布版本
  • explicit:允许在版本需求中具有显式预发布标记的一方包的预发布版本
  • if-necessary-or-explicit:如果包的所有版本都是预发布版本,或者如果包在版本需求中具有显式预发布标记,则允许预发布版本
--project project

在给定目录中发现项目。

所有 pyproject.tomluv.toml.python-version 文件都将通过从项目根目录向上遍历目录树来发现,项目的虚拟环境 (.venv) 也是如此。

其他命令行参数(例如相对路径)将相对于当前工作目录进行解析。

参见 --directory 以完全更改工作目录。

当在 uv pip 接口中使用时,此设置无效。

也可以通过 UV_PROJECT 环境变量设置。

--python, -p python

用于解析和同步的 Python 解释器。

请参阅 uv python 以了解有关 Python 发现和支持的请求格式的详细信息。

也可以通过 UV_PYTHON 环境变量设置。

--quiet, -q

使用安静输出。

重复此选项,例如 -qq,将启用静默模式,其中 uv 不会将任何输出写入标准输出。

--raw, --raw-sources

按原样添加依赖项。

默认情况下,uv 将使用 tool.uv.sources 部分来记录 Git、本地、可编辑和直接 URL 需求的源信息。当提供 --raw 时,uv 将把源需求添加到 project.dependencies,而不是 tool.uv.sources

此外,默认情况下,uv 会为您的依赖项添加界限,例如 foo>=1.0.0。当提供 --raw 时,uv 将在没有界限的情况下添加依赖项。

--refresh

刷新所有缓存数据

--refresh-package refresh-package

刷新特定包的缓存数据

--reinstall, --force-reinstall

重新安装所有包,无论它们是否已安装。暗示 --refresh

--reinstall-package reinstall-package

重新安装特定包,无论它是否已安装。暗示 --refresh-package

--requirements, --requirement, -r requirements

添加给定文件中列出的包。

支持以下格式:requirements.txt、具有内联元数据的 .py 文件、pylock.tomlpyproject.tomlsetup.pysetup.cfg

--resolution resolution

在为给定包需求选择不同的兼容版本时要使用的策略。

默认情况下,uv 将使用每个包的最新兼容版本 (highest)。

也可以通过 UV_RESOLUTION 环境变量设置。

可选值

  • highest:解析每个包的最高兼容版本
  • lowest:解析每个包的最低兼容版本
  • lowest-direct:解析任何直接依赖项的最低兼容版本,以及任何传递依赖项的最高兼容版本
--rev rev

从 Git 添加依赖项时要使用的提交

--script script

将依赖项添加到指定的 Python 脚本,而不是项目。

如果提供,uv 将根据 PEP 723 将依赖项添加到脚本的内联元数据表中。如果不存在此类内联元数据表,将创建一个新表并添加到脚本中。当通过 uv run 执行时,uv 将为该脚本创建一个临时环境,并安装所有内联依赖项。

--tag tag

从 Git 添加依赖项时要使用的标签

--upgrade, -U

允许包升级,忽略任何现有输出文件中的固定版本。暗示 --refresh

--upgrade-package, -P upgrade-package

允许升级特定包,忽略任何现有输出文件中的固定版本。暗示 --refresh-package

--verbose, -v

使用详细输出。

您可以使用 RUST_LOG 环境变量配置细粒度日志记录。(https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html#directives

--workspace

将依赖项添加为工作空间成员。

默认情况下,uv 将在工作空间目录内的路径依赖项添加为工作空间成员。当与路径依赖项一起使用时,该包将添加到根 pyproject.toml 文件中工作空间的 members 列表中。

uv remove

从项目中移除依赖项。

依赖项被从项目的 pyproject.toml 文件中移除。

如果给定依赖项存在多个条目(例如,每个条目具有不同的标记),则所有这些条目都将被移除。

锁文件和项目环境将被更新以反映移除的依赖项。要跳过更新锁文件,请使用 --frozen。要跳过更新环境,请使用 --no-sync

如果项目中的任何请求依赖项不存在,uv 将报错退出。

如果包已手动安装在环境中(例如,使用 uv pip install),它将不会被 uv remove 移除。

uv 将在当前目录或任何父目录中搜索项目。如果找不到项目,uv 将报错退出。

用法

uv remove [OPTIONS] <PACKAGES>...

参数

PACKAGES

要移除的依赖项名称(例如 ruff

Options (选项)

--active

优先使用激活的虚拟环境,而不是项目的虚拟环境。

如果项目虚拟环境已激活或没有激活的虚拟环境,则此选项无效。

--allow-insecure-host, --trusted-host allow-insecure-host

允许与主机建立不安全连接。

可以多次提供。

期望接收主机名(例如 localhost)、主机-端口对(例如 localhost:8080)或 URL(例如 https://)。

警告:此列表中的主机不会根据系统的证书存储进行验证。仅在具有受信任来源的安全网络中使用 --allow-insecure-host,因为它会绕过 SSL 验证,可能会使您面临 MITM 攻击。

也可以通过 UV_INSECURE_HOST 环境变量设置。

--cache-dir cache-dir

缓存目录的路径。

默认在 macOS 和 Linux 上为 $XDG_CACHE_HOME/uv$HOME/.cache/uv,在 Windows 上为 %LOCALAPPDATA%\uv\cache

要查看缓存目录的位置,请运行 uv cache dir

也可以通过 UV_CACHE_DIR 环境变量设置。

--color color-choice

控制输出中颜色的使用。

默认情况下,uv 在写入终端时会自动检测对颜色的支持。

可选值

  • auto:仅在输出到支持颜色的终端或 TTY 时启用彩色输出
  • always:无论检测到的环境如何,都启用彩色输出
  • never:禁用彩色输出
--compile-bytecode, --compile

安装后将 Python 文件编译为字节码。

默认情况下,uv 不会将 Python (.py) 文件编译为字节码 (__pycache__/*.pyc);相反,编译是在模块首次导入时延迟执行的。对于启动时间至关重要的用例(例如 CLI 应用程序和 Docker 容器),可以启用此选项,以牺牲较长的安装时间换取更快的启动时间。

启用后,uv 将处理整个 site-packages 目录(包括当前操作未修改的包)以保持一致性。像 pip 一样,它也会忽略错误。

也可以通过 UV_COMPILE_BYTECODE 环境变量设置。

--config-file config-file

用于配置的 uv.toml 文件路径。

虽然 uv 配置可以包含在 pyproject.toml 文件中,但在这种上下文下是不允许的。

也可以通过 UV_CONFIG_FILE 环境变量设置。

--config-setting, --config-settings, -C config-setting

传递给 PEP 517 构建后端的设置,指定为 KEY=VALUE

--config-settings-package, --config-settings-package config-settings-package

传递给特定包的 PEP 517 构建后端的设置,指定为 PACKAGE:KEY=VALUE

--default-index default-index

默认包索引的 URL(默认:https://pypi.ac.cn/simple)。

接受符合 PEP 503(简单存储库 API)的存储库,或以相同格式布局的本地目录。

此标志给出的索引优先级低于通过 --index 标志指定的所有其他索引。

也可以通过 UV_DEFAULT_INDEX 环境变量设置。

--dev

从开发依赖组中移除包 [环境变量: UV_DEV=]

此选项是 --group dev 的别名。

--directory directory

在运行命令之前切换到指定目录。

相对路径将以给定目录为基础进行解析。

参见 --project 仅更改项目根目录。

也可以通过 UV_WORKING_DIR 环境变量设置。

--exclude-newer exclude-newer

将候选包限制为给定日期之前上传的包。

接受 RFC 3339 时间戳(例如 2006-12-02T02:07:43Z)、相同格式的本地日期(例如 2006-12-02,基于系统配置的时区解析)、“友好”持续时间(例如 24 hours1 week30 days)或 ISO 8601 持续时间(例如 PT24HP7DP30D)。

持续时间不尊重本地时区的语义,始终假定一天为 24 小时(例如忽略夏令时转换)并解析为固定的秒数。不允许使用月和年等日历单位。

也可以通过 UV_EXCLUDE_NEWER 环境变量设置。

--exclude-newer-package exclude-newer-package

将特定包的候选包限制为给定日期之前上传的包。

接受 PACKAGE=DATE 格式的包-日期对,其中 DATE 是 RFC 3339 时间戳(例如 2006-12-02T02:07:43Z)、相同格式的本地日期(例如 2006-12-02,基于系统配置的时区解析)、“友好”持续时间(例如 24 hours1 week30 days)或 ISO 8601 持续时间(例如 PT24HP7DP30D)。

持续时间不尊重本地时区的语义,始终假定一天为 24 小时(例如忽略夏令时转换)并解析为固定的秒数。不允许使用月和年等日历单位。

可以为不同的包多次提供。

--extra-index-url extra-index-url

(已弃用:请改用 --index)除 --index-url 之外要使用的额外包索引 URL。

接受符合 PEP 503(简单存储库 API)的存储库,或以相同格式布局的本地目录。

通过此标志提供的所有索引的优先级都高于 --index-url(默认为 PyPI)指定的索引。当提供多个 --extra-index-url 标志时,较早的值具有更高的优先级。

也可以通过 UV_EXTRA_INDEX_URL 环境变量设置。

除在注册表索引中找到的位置外,还要搜索候选分发包的位置。

如果是路径,则目标必须是包含顶层 wheel 文件 (.whl) 或源代码分发包(例如 .tar.gz.zip)的目录。

如果是 URL,页面必须包含符合上述格式的包文件链接的平面列表。

也可以通过 UV_FIND_LINKS 环境变量设置。

--fork-strategy fork-strategy

在跨 Python 版本和平台选择给定包的多个版本时要使用的策略。

默认情况下,uv 将优化为为每个支持的 Python 版本 (requires-python) 选择每个包的最新版本,同时最小化跨平台的选定版本数量。

fewest 下,uv 将最小化每个包的选定版本数量,优先选择与更广泛支持的 Python 版本或平台兼容的旧版本。

也可以通过 UV_FORK_STRATEGY 环境变量设置。

可选值

  • fewest:优化为为每个包选择最少数量的版本。如果旧版本与更广泛的支持 Python 版本或平台兼容,则可能优先选择旧版本
  • requires-python:优化为为每个支持的 Python 版本选择每个包的最新支持版本
--frozen

在不重新锁定项目的情况下移除依赖项 [环境变量: UV_FROZEN=]

项目环境将不会同步。

--group group

从指定的依赖组中移除包

--help, -h

显示此命令的简明帮助信息

--index index

除默认索引外,解析依赖项时要使用的 URL。

接受符合 PEP 503(简单存储库 API)的存储库,或以相同格式布局的本地目录。

通过此标志提供的所有索引的优先级都高于 --default-index(默认为 PyPI)指定的索引。当提供多个 --index 标志时,较早的值具有更高的优先级。

不支持将索引名称用作值。相对路径必须使用 Unix 上的 ./../,或 Windows 上的 .\\..\\./../ 与索引名称区分开来。

也可以通过 UV_INDEX 环境变量设置。

--index-strategy index-strategy

在针对多个索引 URL 进行解析时要使用的策略。

默认情况下,uv 将在给定包可用的第一个索引处停止,并将解析限制为该第一个索引中存在的那些包 (first-index)。这可以防止“依赖混淆”攻击,攻击者可以在该攻击中以相同的名称将恶意包上传到备用索引。

也可以通过 UV_INDEX_STRATEGY 环境变量设置。

可选值

  • first-index:仅使用第一个返回给定包名称匹配结果的索引中的结果
  • unsafe-first-match:搜索跨所有索引的每个包名称,在转到下一个索引之前耗尽第一个索引中的版本
  • unsafe-best-match:搜索跨所有索引的每个包名称,优先选择找到的“最佳”版本。如果包版本存在于多个索引中,则仅查看第一个索引的条目
--index-url, -i index-url

(已弃用:请改用 --default-index)Python 包索引的 URL(默认:https://pypi.ac.cn/simple)。

接受符合 PEP 503(简单存储库 API)的存储库,或以相同格式布局的本地目录。

此标志给出的索引优先级低于通过 --extra-index-url 标志指定的所有其他索引。

也可以通过 UV_INDEX_URL 环境变量设置。

--keyring-provider keyring-provider

尝试使用 keyring 进行索引 URL 的身份验证。

目前,仅支持 --keyring-provider subprocess,它将 uv 配置为使用 keyring CLI 来处理身份验证。

默认为 disabled

也可以通过 UV_KEYRING_PROVIDER 环境变量设置。

可选值

  • disabled:不使用密钥环进行凭据查找
  • subprocess:使用 keyring 命令进行凭据查找

从全局缓存安装包时要使用的方法。

默认在 macOS 和 Linux 上为 clone(也称为写时复制),在 Windows 上为 hardlink

警告:不建议使用符号链接链接模式,因为它们会在缓存和目标环境之间创建紧密的耦合。例如,清除缓存 (uv cache clean) 将通过移除底层源文件来破坏所有已安装的包。请谨慎使用符号链接。

也可以通过 UV_LINK_MODE 环境变量设置。

可选值

  • clone:将包从源克隆(即写时复制)到目标
  • copy:将包从源复制到目标
  • hardlink:将包从源硬链接到目标
  • symlink:将包从源符号链接到目标
--locked

断言 uv.lock 将保持不变 [环境变量: UV_LOCKED=]

要求锁文件是最新的。如果锁文件缺失或需要更新,uv 将报错退出。

--managed-python

要求使用 uv 管理的 Python 版本 [环境变量: UV_MANAGED_PYTHON=]

默认情况下,uv 优先使用其管理的 Python 版本。但是,如果未安装 uv 管理的 Python,它将使用系统 Python 版本。此选项将禁用系统 Python 版本的调用。

--native-tls

是否从平台的原生存储中加载 TLS 证书 [环境变量: UV_NATIVE_TLS=]

默认情况下,uv 从绑定的 webpki-roots crate 中加载证书。webpki-roots 是一组来自 Mozilla 的可靠信任根,在 uv 中包含它们可提高可移植性和性能(特别是在 macOS 上)。

然而,在某些情况下,您可能希望使用平台的原生证书存储,特别是当您依赖于系统证书存储中包含的公司信任根(例如强制代理)时。

--no-binary

不安装预构建的 wheel。

给定的包将从源代码构建和安装。如果可用,解析器仍将使用预构建的 wheel 来提取包元数据。

也可以通过 UV_NO_BINARY 环境变量设置。

--no-binary-package no-binary-package

不为特定包安装预构建的 wheel

也可以通过 UV_NO_BINARY_PACKAGE 环境变量设置。

--no-build

不构建源代码分发包。

启用后,解析将不会运行任意 Python 代码。已构建的源代码分发包的缓存 wheel 将被重用,但需要构建分发包的操作将报错退出。

也可以通过 UV_NO_BUILD 环境变量设置。

--no-build-isolation

构建源代码分发包时禁用隔离。

假定 PEP 518 指定的构建依赖项已安装。

也可以通过 UV_NO_BUILD_ISOLATION 环境变量设置。

--no-build-isolation-package no-build-isolation-package

为特定包构建源代码分发包时禁用隔离。

假定包的 PEP 518 指定的构建依赖项已安装。

--no-build-package no-build-package

不为特定包构建源代码分发包

也可以通过 UV_NO_BUILD_PACKAGE 环境变量设置。

--no-cache, --no-cache-dir, -n

避免从缓存中读取或写入缓存,而是在操作期间使用临时目录

也可以通过 UV_NO_CACHE 环境变量设置。

--no-config

避免发现配置文件(pyproject.tomluv.toml)。

通常,会在当前目录、父目录或用户配置目录中发现配置文件。

也可以通过 UV_NO_CONFIG 环境变量设置。

--no-index

忽略注册表索引(例如 PyPI),而是依赖直接 URL 依赖项和通过 --find-links 提供的依赖项

--no-managed-python

禁用对 uv 管理的 Python 版本的使用 [环境变量: UV_NO_MANAGED_PYTHON=]

相反,uv 将在系统上搜索合适的 Python 版本。

--no-progress

隐藏所有进度输出 [环境变量: UV_NO_PROGRESS=]

例如,微调器或进度条。

--no-python-downloads

禁用 Python 的自动下载。

--no-sources

解析依赖项时忽略 tool.uv.sources 表。用于根据标准兼容、可发布的包元数据进行锁定,而不是使用任何工作空间、Git、URL 或本地路径源

也可以通过 UV_NO_SOURCES 环境变量设置。

--no-sources-package no-sources-package

不要为指定包使用 tool.uv.sources 表中的源

也可以通过 UV_NO_SOURCES_PACKAGE 环境变量设置。

--no-sync

在重新锁定项目后,避免同步虚拟环境 [环境变量: UV_NO_SYNC=]

--offline

禁用网络访问 [环境变量: UV_OFFLINE=]

禁用时,uv 将仅使用本地缓存的数据和本地可用的文件。

--optional optional

从项目指定额外内容的可选依赖项中移除包

--package package

从工作空间中的特定包中移除依赖项

--prerelease prerelease

考虑预发布版本时要使用的策略。

默认情况下,uv 将接受 发布预发布版本的包,以及在声明的需求说明符中包含显式预发布标记的一方需求 (if-necessary-or-explicit)。

也可以通过 UV_PRERELEASE 环境变量设置。

可选值

  • disallow:不允许所有预发布版本
  • allow:允许所有预发布版本
  • if-necessary:如果包的所有版本都是预发布版本,则允许预发布版本
  • explicit:允许在版本需求中具有显式预发布标记的一方包的预发布版本
  • if-necessary-or-explicit:如果包的所有版本都是预发布版本,或者如果包在版本需求中具有显式预发布标记,则允许预发布版本
--project project

在给定目录中发现项目。

所有 pyproject.tomluv.toml.python-version 文件都将通过从项目根目录向上遍历目录树来发现,项目的虚拟环境 (.venv) 也是如此。

其他命令行参数(例如相对路径)将相对于当前工作目录进行解析。

参见 --directory 以完全更改工作目录。

当在 uv pip 接口中使用时,此设置无效。

也可以通过 UV_PROJECT 环境变量设置。

--python, -p python

用于解析和同步的 Python 解释器。

请参阅 uv python 以了解有关 Python 发现和支持的请求格式的详细信息。

也可以通过 UV_PYTHON 环境变量设置。

--quiet, -q

使用安静输出。

重复此选项,例如 -qq,将启用静默模式,其中 uv 不会将任何输出写入标准输出。

--refresh

刷新所有缓存数据

--refresh-package refresh-package

刷新特定包的缓存数据

--reinstall, --force-reinstall

重新安装所有包,无论它们是否已安装。暗示 --refresh

--reinstall-package reinstall-package

重新安装特定包,无论它是否已安装。暗示 --refresh-package

--resolution resolution

在为给定包需求选择不同的兼容版本时要使用的策略。

默认情况下,uv 将使用每个包的最新兼容版本 (highest)。

也可以通过 UV_RESOLUTION 环境变量设置。

可选值

  • highest:解析每个包的最高兼容版本
  • lowest:解析每个包的最低兼容版本
  • lowest-direct:解析任何直接依赖项的最低兼容版本,以及任何传递依赖项的最高兼容版本
--script script

从指定的 Python 脚本中移除依赖项,而不是从项目中移除。

如果提供,uv 将根据 PEP 723 从脚本的内联元数据表中移除该依赖项。

--upgrade, -U

允许包升级,忽略任何现有输出文件中的固定版本。暗示 --refresh

--upgrade-package, -P upgrade-package

允许升级特定包,忽略任何现有输出文件中的固定版本。暗示 --refresh-package

--verbose, -v

使用详细输出。

您可以使用 RUST_LOG 环境变量配置细粒度日志记录。(https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html#directives

uv version

读取或更新项目版本

用法

uv version [OPTIONS] [VALUE]

参数

VALUE

将项目版本设置为此值

要改为使用语义版本控制组件更新项目,请使用 --bump

Options (选项)

--active

优先使用激活的虚拟环境,而不是项目的虚拟环境。

如果项目虚拟环境已激活或没有激活的虚拟环境,则此选项无效。

--allow-insecure-host, --trusted-host allow-insecure-host

允许与主机建立不安全连接。

可以多次提供。

期望接收主机名(例如 localhost)、主机-端口对(例如 localhost:8080)或 URL(例如 https://)。

警告:此列表中的主机不会根据系统的证书存储进行验证。仅在具有受信任来源的安全网络中使用 --allow-insecure-host,因为它会绕过 SSL 验证,可能会使您面临 MITM 攻击。

也可以通过 UV_INSECURE_HOST 环境变量设置。

--bump bump[=value]

使用给定的语义更新项目版本

此标志可以多次传递。

可选值

  • major:增加主要版本(例如 1.2.3 => 2.0.0)
  • minor:增加次要版本(例如 1.2.3 => 1.3.0)
  • patch:增加补丁版本(例如 1.2.3 => 1.2.4)
  • stable:从预发布版本移至稳定版本(例如 1.2.3b4.post5.dev6 => 1.2.3)
  • alpha:增加 alpha 版本(例如 1.2.3a4 => 1.2.3a5)
  • beta:增加 beta 版本(例如 1.2.3b4 => 1.2.3b5)
  • rc:增加 rc 版本(例如 1.2.3rc4 => 1.2.3rc5)
  • post:增加 post 版本(例如 1.2.3.post5 => 1.2.3.post6)
  • dev:增加 dev 版本(例如 1.2.3a4.dev6 => 1.2.3.dev7)
--cache-dir cache-dir

缓存目录的路径。

默认在 macOS 和 Linux 上为 $XDG_CACHE_HOME/uv$HOME/.cache/uv,在 Windows 上为 %LOCALAPPDATA%\uv\cache

要查看缓存目录的位置,请运行 uv cache dir

也可以通过 UV_CACHE_DIR 环境变量设置。

--color color-choice

控制输出中颜色的使用。

默认情况下,uv 在写入终端时会自动检测对颜色的支持。

可选值

  • auto:仅在输出到支持颜色的终端或 TTY 时启用彩色输出
  • always:无论检测到的环境如何,都启用彩色输出
  • never:禁用彩色输出
--compile-bytecode, --compile

安装后将 Python 文件编译为字节码。

默认情况下,uv 不会将 Python (.py) 文件编译为字节码 (__pycache__/*.pyc);相反,编译是在模块首次导入时延迟执行的。对于启动时间至关重要的用例(例如 CLI 应用程序和 Docker 容器),可以启用此选项,以牺牲较长的安装时间换取更快的启动时间。

启用后,uv 将处理整个 site-packages 目录(包括当前操作未修改的包)以保持一致性。像 pip 一样,它也会忽略错误。

也可以通过 UV_COMPILE_BYTECODE 环境变量设置。

--config-file config-file

用于配置的 uv.toml 文件路径。

虽然 uv 配置可以包含在 pyproject.toml 文件中,但在这种上下文下是不允许的。

也可以通过 UV_CONFIG_FILE 环境变量设置。

--config-setting, --config-settings, -C config-setting

传递给 PEP 517 构建后端的设置,指定为 KEY=VALUE

--config-settings-package, --config-settings-package config-settings-package

传递给特定包的 PEP 517 构建后端的设置,指定为 PACKAGE:KEY=VALUE

--default-index default-index

默认包索引的 URL(默认:https://pypi.ac.cn/simple)。

接受符合 PEP 503(简单存储库 API)的存储库,或以相同格式布局的本地目录。

此标志给出的索引优先级低于通过 --index 标志指定的所有其他索引。

也可以通过 UV_DEFAULT_INDEX 环境变量设置。

--directory directory

在运行命令之前切换到指定目录。

相对路径将以给定目录为基础进行解析。

参见 --project 仅更改项目根目录。

也可以通过 UV_WORKING_DIR 环境变量设置。

--dry-run

不向 pyproject.toml 写入新版本

而是显示该版本。

--exclude-newer exclude-newer

将候选包限制为给定日期之前上传的包。

接受 RFC 3339 时间戳(例如 2006-12-02T02:07:43Z)、相同格式的本地日期(例如 2006-12-02,基于系统配置的时区解析)、“友好”持续时间(例如 24 hours1 week30 days)或 ISO 8601 持续时间(例如 PT24HP7DP30D)。

持续时间不尊重本地时区的语义,始终假定一天为 24 小时(例如忽略夏令时转换)并解析为固定的秒数。不允许使用月和年等日历单位。

也可以通过 UV_EXCLUDE_NEWER 环境变量设置。

--exclude-newer-package exclude-newer-package

将特定包的候选包限制为给定日期之前上传的包。

接受 PACKAGE=DATE 格式的包-日期对,其中 DATE 是 RFC 3339 时间戳(例如 2006-12-02T02:07:43Z)、相同格式的本地日期(例如 2006-12-02,基于系统配置的时区解析)、“友好”持续时间(例如 24 hours1 week30 days)或 ISO 8601 持续时间(例如 PT24HP7DP30D)。

持续时间不尊重本地时区的语义,始终假定一天为 24 小时(例如忽略夏令时转换)并解析为固定的秒数。不允许使用月和年等日历单位。

可以为不同的包多次提供。

--extra-index-url extra-index-url

(已弃用:请改用 --index)除 --index-url 之外要使用的额外包索引 URL。

接受符合 PEP 503(简单存储库 API)的存储库,或以相同格式布局的本地目录。

通过此标志提供的所有索引的优先级都高于 --index-url(默认为 PyPI)指定的索引。当提供多个 --extra-index-url 标志时,较早的值具有更高的优先级。

也可以通过 UV_EXTRA_INDEX_URL 环境变量设置。

除在注册表索引中找到的位置外,还要搜索候选分发包的位置。

如果是路径,则目标必须是包含顶层 wheel 文件 (.whl) 或源代码分发包(例如 .tar.gz.zip)的目录。

如果是 URL,页面必须包含符合上述格式的包文件链接的平面列表。

也可以通过 UV_FIND_LINKS 环境变量设置。

--fork-strategy fork-strategy

在跨 Python 版本和平台选择给定包的多个版本时要使用的策略。

默认情况下,uv 将优化为为每个支持的 Python 版本 (requires-python) 选择每个包的最新版本,同时最小化跨平台的选定版本数量。

fewest 下,uv 将最小化每个包的选定版本数量,优先选择与更广泛支持的 Python 版本或平台兼容的旧版本。

也可以通过 UV_FORK_STRATEGY 环境变量设置。

可选值

  • fewest:优化为为每个包选择最少数量的版本。如果旧版本与更广泛的支持 Python 版本或平台兼容,则可能优先选择旧版本
  • requires-python:优化为为每个支持的 Python 版本选择每个包的最新支持版本
--frozen

更新版本而不重新锁定项目 [env: UV_FROZEN=]

项目环境将不会同步。

--help, -h

显示此命令的简明帮助信息

--index index

除默认索引外,解析依赖项时要使用的 URL。

接受符合 PEP 503(简单存储库 API)的存储库,或以相同格式布局的本地目录。

通过此标志提供的所有索引的优先级都高于 --default-index(默认为 PyPI)指定的索引。当提供多个 --index 标志时,较早的值具有更高的优先级。

不支持将索引名称用作值。相对路径必须使用 Unix 上的 ./../,或 Windows 上的 .\\..\\./../ 与索引名称区分开来。

也可以通过 UV_INDEX 环境变量设置。

--index-strategy index-strategy

在针对多个索引 URL 进行解析时要使用的策略。

默认情况下,uv 将在给定包可用的第一个索引处停止,并将解析限制为该第一个索引中存在的那些包 (first-index)。这可以防止“依赖混淆”攻击,攻击者可以在该攻击中以相同的名称将恶意包上传到备用索引。

也可以通过 UV_INDEX_STRATEGY 环境变量设置。

可选值

  • first-index:仅使用第一个返回给定包名称匹配结果的索引中的结果
  • unsafe-first-match:搜索跨所有索引的每个包名称,在转到下一个索引之前耗尽第一个索引中的版本
  • unsafe-best-match:搜索跨所有索引的每个包名称,优先选择找到的“最佳”版本。如果包版本存在于多个索引中,则仅查看第一个索引的条目
--index-url, -i index-url

(已弃用:请改用 --default-index)Python 包索引的 URL(默认:https://pypi.ac.cn/simple)。

接受符合 PEP 503(简单存储库 API)的存储库,或以相同格式布局的本地目录。

此标志给出的索引优先级低于通过 --extra-index-url 标志指定的所有其他索引。

也可以通过 UV_INDEX_URL 环境变量设置。

--keyring-provider keyring-provider

尝试使用 keyring 进行索引 URL 的身份验证。

目前,仅支持 --keyring-provider subprocess,它将 uv 配置为使用 keyring CLI 来处理身份验证。

默认为 disabled

也可以通过 UV_KEYRING_PROVIDER 环境变量设置。

可选值

  • disabled:不使用密钥环进行凭据查找
  • subprocess:使用 keyring 命令进行凭据查找

从全局缓存安装包时要使用的方法。

默认在 macOS 和 Linux 上为 clone(也称为写时复制),在 Windows 上为 hardlink

警告:不建议使用符号链接链接模式,因为它们会在缓存和目标环境之间创建紧密的耦合。例如,清除缓存 (uv cache clean) 将通过移除底层源文件来破坏所有已安装的包。请谨慎使用符号链接。

也可以通过 UV_LINK_MODE 环境变量设置。

可选值

  • clone:将包从源克隆(即写时复制)到目标
  • copy:将包从源复制到目标
  • hardlink:将包从源硬链接到目标
  • symlink:将包从源符号链接到目标
--locked

断言 uv.lock 将保持不变 [环境变量: UV_LOCKED=]

要求锁文件是最新的。如果锁文件缺失或需要更新,uv 将报错退出。

--managed-python

要求使用 uv 管理的 Python 版本 [环境变量: UV_MANAGED_PYTHON=]

默认情况下,uv 优先使用其管理的 Python 版本。但是,如果未安装 uv 管理的 Python,它将使用系统 Python 版本。此选项将禁用系统 Python 版本的调用。

--native-tls

是否从平台的原生存储中加载 TLS 证书 [环境变量: UV_NATIVE_TLS=]

默认情况下,uv 从绑定的 webpki-roots crate 中加载证书。webpki-roots 是一组来自 Mozilla 的可靠信任根,在 uv 中包含它们可提高可移植性和性能(特别是在 macOS 上)。

然而,在某些情况下,您可能希望使用平台的原生证书存储,特别是当您依赖于系统证书存储中包含的公司信任根(例如强制代理)时。

--no-binary

不安装预构建的 wheel。

给定的包将从源代码构建和安装。如果可用,解析器仍将使用预构建的 wheel 来提取包元数据。

也可以通过 UV_NO_BINARY 环境变量设置。

--no-binary-package no-binary-package

不为特定包安装预构建的 wheel

也可以通过 UV_NO_BINARY_PACKAGE 环境变量设置。

--no-build

不构建源代码分发包。

启用后,解析将不会运行任意 Python 代码。已构建的源代码分发包的缓存 wheel 将被重用,但需要构建分发包的操作将报错退出。

也可以通过 UV_NO_BUILD 环境变量设置。

--no-build-isolation

构建源代码分发包时禁用隔离。

假定 PEP 518 指定的构建依赖项已安装。

也可以通过 UV_NO_BUILD_ISOLATION 环境变量设置。

--no-build-isolation-package no-build-isolation-package

为特定包构建源代码分发包时禁用隔离。

假定包的 PEP 518 指定的构建依赖项已安装。

--no-build-package no-build-package

不为特定包构建源代码分发包

也可以通过 UV_NO_BUILD_PACKAGE 环境变量设置。

--no-cache, --no-cache-dir, -n

避免从缓存中读取或写入缓存,而是在操作期间使用临时目录

也可以通过 UV_NO_CACHE 环境变量设置。

--no-config

避免发现配置文件(pyproject.tomluv.toml)。

通常,会在当前目录、父目录或用户配置目录中发现配置文件。

也可以通过 UV_NO_CONFIG 环境变量设置。

--no-index

忽略注册表索引(例如 PyPI),而是依赖直接 URL 依赖项和通过 --find-links 提供的依赖项

--no-managed-python

禁用对 uv 管理的 Python 版本的使用 [环境变量: UV_NO_MANAGED_PYTHON=]

相反,uv 将在系统上搜索合适的 Python 版本。

--no-progress

隐藏所有进度输出 [环境变量: UV_NO_PROGRESS=]

例如,微调器或进度条。

--no-python-downloads

禁用 Python 的自动下载。

--no-sources

解析依赖项时忽略 tool.uv.sources 表。用于根据标准兼容、可发布的包元数据进行锁定,而不是使用任何工作空间、Git、URL 或本地路径源

也可以通过 UV_NO_SOURCES 环境变量设置。

--no-sources-package no-sources-package

不要为指定包使用 tool.uv.sources 表中的源

也可以通过 UV_NO_SOURCES_PACKAGE 环境变量设置。

--no-sync

在重新锁定项目后,避免同步虚拟环境 [环境变量: UV_NO_SYNC=]

--offline

禁用网络访问 [环境变量: UV_OFFLINE=]

禁用时,uv 将仅使用本地缓存的数据和本地可用的文件。

--output-format output-format

输出格式

[默认: text]

可选值

  • text: 以纯文本形式显示版本
  • json: 以 JSON 形式显示版本
--package package

更新工作区中特定包的版本

--prerelease prerelease

考虑预发布版本时要使用的策略。

默认情况下,uv 将接受 发布预发布版本的包,以及在声明的需求说明符中包含显式预发布标记的一方需求 (if-necessary-or-explicit)。

也可以通过 UV_PRERELEASE 环境变量设置。

可选值

  • disallow:不允许所有预发布版本
  • allow:允许所有预发布版本
  • if-necessary:如果包的所有版本都是预发布版本,则允许预发布版本
  • explicit:允许在版本需求中具有显式预发布标记的一方包的预发布版本
  • if-necessary-or-explicit:如果包的所有版本都是预发布版本,或者如果包在版本需求中具有显式预发布标记,则允许预发布版本
--project project

在给定目录中发现项目。

所有 pyproject.tomluv.toml.python-version 文件都将通过从项目根目录向上遍历目录树来发现,项目的虚拟环境 (.venv) 也是如此。

其他命令行参数(例如相对路径)将相对于当前工作目录进行解析。

参见 --directory 以完全更改工作目录。

当在 uv pip 接口中使用时,此设置无效。

也可以通过 UV_PROJECT 环境变量设置。

--python, -p python

用于解析和同步的 Python 解释器。

请参阅 uv python 以了解有关 Python 发现和支持的请求格式的详细信息。

也可以通过 UV_PYTHON 环境变量设置。

--quiet, -q

使用安静输出。

重复此选项,例如 -qq,将启用静默模式,其中 uv 不会将任何输出写入标准输出。

--refresh

刷新所有缓存数据

--refresh-package refresh-package

刷新特定包的缓存数据

--reinstall, --force-reinstall

重新安装所有包,无论它们是否已安装。暗示 --refresh

--reinstall-package reinstall-package

重新安装特定包,无论它是否已安装。暗示 --refresh-package

--resolution resolution

在为给定包需求选择不同的兼容版本时要使用的策略。

默认情况下,uv 将使用每个包的最新兼容版本 (highest)。

也可以通过 UV_RESOLUTION 环境变量设置。

可选值

  • highest:解析每个包的最高兼容版本
  • lowest:解析每个包的最低兼容版本
  • lowest-direct:解析任何直接依赖项的最低兼容版本,以及任何传递依赖项的最高兼容版本
--short

仅显示版本

默认情况下,uv 会在版本前显示项目名称。

--upgrade, -U

允许包升级,忽略任何现有输出文件中的固定版本。暗示 --refresh

--upgrade-package, -P upgrade-package

允许升级特定包,忽略任何现有输出文件中的固定版本。暗示 --refresh-package

--verbose, -v

使用详细输出。

您可以使用 RUST_LOG 环境变量配置细粒度日志记录。(https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html#directives

uv sync

更新项目的环境。

同步可确保所有项目依赖项均已安装,并与锁文件(lockfile)保持最新状态。

默认情况下,执行精确同步:uv 会移除未声明为项目依赖项的包。使用 --inexact 标志可保留多余的包。请注意,如果多余的包与项目依赖项冲突,它仍会被移除。此外,如果使用了 --no-build-isolation,uv 将不会移除多余的包,以避免移除可能的构建依赖项。

如果项目虚拟环境 (.venv) 不存在,将会创建它。

除非提供了 --locked--frozen 标志,否则项目会在同步前重新锁定。

uv 将在当前目录或任何父目录中搜索项目。如果找不到项目,uv 将报错退出。

请注意,从锁文件安装时,uv 不会为已撤回(yanked)的包版本提供警告。

用法

uv sync [OPTIONS]

Options (选项)

--active

将依赖项同步到活动的虚拟环境。

如果设置了 VIRTUAL_ENV 环境变量,则优先使用活动的虚拟环境,而不是为项目或脚本创建/更新虚拟环境。

--all-extras

包含所有可选依赖项。

tool.uv.conflicts 中声明了两个或多个冲突的额外项(extra)时,使用此标志始终会导致错误。

请注意,所有可选依赖项始终包含在解析中;此选项仅影响要安装的包的选择。

--all-groups

包含所有依赖组中的依赖项。

可以使用 --no-group 排除特定组。

--all-packages

同步工作区中的所有包。

工作空间的环境 (.venv) 会被更新以包含所有工作空间成员。

通过 --extra--group 或相关选项指定的任何额外内容或组将应用于所有工作空间成员。

--allow-insecure-host, --trusted-host allow-insecure-host

允许与主机建立不安全连接。

可以多次提供。

期望接收主机名(例如 localhost)、主机-端口对(例如 localhost:8080)或 URL(例如 https://)。

警告:此列表中的主机不会根据系统的证书存储进行验证。仅在具有受信任来源的安全网络中使用 --allow-insecure-host,因为它会绕过 SSL 验证,可能会使您面临 MITM 攻击。

也可以通过 UV_INSECURE_HOST 环境变量设置。

--cache-dir cache-dir

缓存目录的路径。

默认在 macOS 和 Linux 上为 $XDG_CACHE_HOME/uv$HOME/.cache/uv,在 Windows 上为 %LOCALAPPDATA%\uv\cache

要查看缓存目录的位置,请运行 uv cache dir

也可以通过 UV_CACHE_DIR 环境变量设置。

--check

检查 Python 环境是否与项目同步。

如果环境不是最新的,uv 将以错误退出。

--color color-choice

控制输出中颜色的使用。

默认情况下,uv 在写入终端时会自动检测对颜色的支持。

可选值

  • auto:仅在输出到支持颜色的终端或 TTY 时启用彩色输出
  • always:无论检测到的环境如何,都启用彩色输出
  • never:禁用彩色输出
--compile-bytecode, --compile

安装后将 Python 文件编译为字节码。

默认情况下,uv 不会将 Python (.py) 文件编译为字节码 (__pycache__/*.pyc);相反,编译是在模块首次导入时延迟执行的。对于启动时间至关重要的用例(例如 CLI 应用程序和 Docker 容器),可以启用此选项,以牺牲较长的安装时间换取更快的启动时间。

启用后,uv 将处理整个 site-packages 目录(包括当前操作未修改的包)以保持一致性。像 pip 一样,它也会忽略错误。

也可以通过 UV_COMPILE_BYTECODE 环境变量设置。

--config-file config-file

用于配置的 uv.toml 文件路径。

虽然 uv 配置可以包含在 pyproject.toml 文件中,但在这种上下文下是不允许的。

也可以通过 UV_CONFIG_FILE 环境变量设置。

--config-setting, --config-settings, -C config-setting

传递给 PEP 517 构建后端的设置,指定为 KEY=VALUE

--config-settings-package, --config-settings-package config-settings-package

传递给特定包的 PEP 517 构建后端的设置,指定为 PACKAGE:KEY=VALUE

--default-index default-index

默认包索引的 URL(默认:https://pypi.ac.cn/simple)。

接受符合 PEP 503(简单存储库 API)的存储库,或以相同格式布局的本地目录。

此标志给出的索引优先级低于通过 --index 标志指定的所有其他索引。

也可以通过 UV_DEFAULT_INDEX 环境变量设置。

--directory directory

在运行命令之前切换到指定目录。

相对路径将以给定目录为基础进行解析。

参见 --project 仅更改项目根目录。

也可以通过 UV_WORKING_DIR 环境变量设置。

--dry-run

执行预演(dry run),不写入锁文件也不修改项目环境。

在预演模式下,uv 将解析项目的依赖项并报告对锁文件和项目环境产生的更改,但不会对其进行任何修改。

--exclude-newer exclude-newer

将候选包限制为给定日期之前上传的包。

接受 RFC 3339 时间戳(例如 2006-12-02T02:07:43Z)、相同格式的本地日期(例如 2006-12-02,基于系统配置的时区解析)、“友好”持续时间(例如 24 hours1 week30 days)或 ISO 8601 持续时间(例如 PT24HP7DP30D)。

持续时间不尊重本地时区的语义,始终假定一天为 24 小时(例如忽略夏令时转换)并解析为固定的秒数。不允许使用月和年等日历单位。

也可以通过 UV_EXCLUDE_NEWER 环境变量设置。

--exclude-newer-package exclude-newer-package

将特定包的候选包限制为给定日期之前上传的包。

接受 PACKAGE=DATE 格式的包-日期对,其中 DATE 是 RFC 3339 时间戳(例如 2006-12-02T02:07:43Z)、相同格式的本地日期(例如 2006-12-02,基于系统配置的时区解析)、“友好”持续时间(例如 24 hours1 week30 days)或 ISO 8601 持续时间(例如 PT24HP7DP30D)。

持续时间不尊重本地时区的语义,始终假定一天为 24 小时(例如忽略夏令时转换)并解析为固定的秒数。不允许使用月和年等日历单位。

可以为不同的包多次提供。

--extra extra

包含来自指定额外名称的可选依赖项。

可以提供多次。

当指定了多个在 tool.uv.conflicts 中出现的额外项或组时,uv 将报告错误。

请注意,所有可选依赖项始终包含在解析中;此选项仅影响要安装的包的选择。

--extra-index-url extra-index-url

(已弃用:请改用 --index)除 --index-url 之外要使用的额外包索引 URL。

接受符合 PEP 503(简单存储库 API)的存储库,或以相同格式布局的本地目录。

通过此标志提供的所有索引的优先级都高于 --index-url(默认为 PyPI)指定的索引。当提供多个 --extra-index-url 标志时,较早的值具有更高的优先级。

也可以通过 UV_EXTRA_INDEX_URL 环境变量设置。

除在注册表索引中找到的位置外,还要搜索候选分发包的位置。

如果是路径,则目标必须是包含顶层 wheel 文件 (.whl) 或源代码分发包(例如 .tar.gz.zip)的目录。

如果是 URL,页面必须包含符合上述格式的包文件链接的平面列表。

也可以通过 UV_FIND_LINKS 环境变量设置。

--fork-strategy fork-strategy

在跨 Python 版本和平台选择给定包的多个版本时要使用的策略。

默认情况下,uv 将优化为为每个支持的 Python 版本 (requires-python) 选择每个包的最新版本,同时最小化跨平台的选定版本数量。

fewest 下,uv 将最小化每个包的选定版本数量,优先选择与更广泛支持的 Python 版本或平台兼容的旧版本。

也可以通过 UV_FORK_STRATEGY 环境变量设置。

可选值

  • fewest:优化为为每个包选择最少数量的版本。如果旧版本与更广泛的支持 Python 版本或平台兼容,则可能优先选择旧版本
  • requires-python:优化为为每个支持的 Python 版本选择每个包的最新支持版本
--frozen

在不更新 uv.lock 文件的情况下进行同步 [env: UV_FROZEN=]

它不检查锁文件是否是最新的,而是直接使用锁文件中的版本作为真理来源。如果锁文件缺失,uv 将报错退出。如果 pyproject.toml 包含尚未包含在锁文件中的依赖项更改,它们将不会出现在环境中。

--group group

包含来自指定依赖组的依赖项。

当指定了多个在 tool.uv.conflicts 中出现的额外项或组时,uv 将报告错误。

可以多次提供。

--help, -h

显示此命令的简明帮助信息

--index index

除默认索引外,解析依赖项时要使用的 URL。

接受符合 PEP 503(简单存储库 API)的存储库,或以相同格式布局的本地目录。

通过此标志提供的所有索引的优先级都高于 --default-index(默认为 PyPI)指定的索引。当提供多个 --index 标志时,较早的值具有更高的优先级。

不支持将索引名称用作值。相对路径必须使用 Unix 上的 ./../,或 Windows 上的 .\\..\\./../ 与索引名称区分开来。

也可以通过 UV_INDEX 环境变量设置。

--index-strategy index-strategy

在针对多个索引 URL 进行解析时要使用的策略。

默认情况下,uv 将在给定包可用的第一个索引处停止,并将解析限制为该第一个索引中存在的那些包 (first-index)。这可以防止“依赖混淆”攻击,攻击者可以在该攻击中以相同的名称将恶意包上传到备用索引。

也可以通过 UV_INDEX_STRATEGY 环境变量设置。

可选值

  • first-index:仅使用第一个返回给定包名称匹配结果的索引中的结果
  • unsafe-first-match:搜索跨所有索引的每个包名称,在转到下一个索引之前耗尽第一个索引中的版本
  • unsafe-best-match:搜索跨所有索引的每个包名称,优先选择找到的“最佳”版本。如果包版本存在于多个索引中,则仅查看第一个索引的条目
--index-url, -i index-url

(已弃用:请改用 --default-index)Python 包索引的 URL(默认:https://pypi.ac.cn/simple)。

接受符合 PEP 503(简单存储库 API)的存储库,或以相同格式布局的本地目录。

此标志给出的索引优先级低于通过 --extra-index-url 标志指定的所有其他索引。

也可以通过 UV_INDEX_URL 环境变量设置。

--inexact, --no-exact

不移除环境中存在的多余包。

启用后,uv 将进行满足需求的最小必要更改。默认情况下,同步会从环境中移除任何多余的包。

--keyring-provider keyring-provider

尝试使用 keyring 进行索引 URL 的身份验证。

目前,仅支持 --keyring-provider subprocess,它将 uv 配置为使用 keyring CLI 来处理身份验证。

默认为 disabled

也可以通过 UV_KEYRING_PROVIDER 环境变量设置。

可选值

  • disabled:不使用密钥环进行凭据查找
  • subprocess:使用 keyring 命令进行凭据查找

从全局缓存安装包时要使用的方法。

默认在 macOS 和 Linux 上为 clone(也称为写时复制),在 Windows 上为 hardlink

警告:不建议使用符号链接链接模式,因为它们会在缓存和目标环境之间创建紧密的耦合。例如,清除缓存 (uv cache clean) 将通过移除底层源文件来破坏所有已安装的包。请谨慎使用符号链接。

也可以通过 UV_LINK_MODE 环境变量设置。

可选值

  • clone:将包从源克隆(即写时复制)到目标
  • copy:将包从源复制到目标
  • hardlink:将包从源硬链接到目标
  • symlink:将包从源符号链接到目标
--locked

断言 uv.lock 将保持不变 [环境变量: UV_LOCKED=]

要求锁文件是最新的。如果锁文件缺失或需要更新,uv 将报错退出。

--managed-python

要求使用 uv 管理的 Python 版本 [环境变量: UV_MANAGED_PYTHON=]

默认情况下,uv 优先使用其管理的 Python 版本。但是,如果未安装 uv 管理的 Python,它将使用系统 Python 版本。此选项将禁用系统 Python 版本的调用。

--native-tls

是否从平台的原生存储中加载 TLS 证书 [环境变量: UV_NATIVE_TLS=]

默认情况下,uv 从绑定的 webpki-roots crate 中加载证书。webpki-roots 是一组来自 Mozilla 的可靠信任根,在 uv 中包含它们可提高可移植性和性能(特别是在 macOS 上)。

然而,在某些情况下,您可能希望使用平台的原生证书存储,特别是当您依赖于系统证书存储中包含的公司信任根(例如强制代理)时。

--no-binary

不安装预构建的 wheel。

给定的包将从源代码构建和安装。如果可用,解析器仍将使用预构建的 wheel 来提取包元数据。

也可以通过 UV_NO_BINARY 环境变量设置。

--no-binary-package no-binary-package

不为特定包安装预构建的 wheel

也可以通过 UV_NO_BINARY_PACKAGE 环境变量设置。

--no-build

不构建源代码分发包。

启用后,解析将不会运行任意 Python 代码。已构建的源代码分发包的缓存 wheel 将被重用,但需要构建分发包的操作将报错退出。

也可以通过 UV_NO_BUILD 环境变量设置。

--no-build-isolation

构建源代码分发包时禁用隔离。

假定 PEP 518 指定的构建依赖项已安装。

也可以通过 UV_NO_BUILD_ISOLATION 环境变量设置。

--no-build-isolation-package no-build-isolation-package

为特定包构建源代码分发包时禁用隔离。

假定包的 PEP 518 指定的构建依赖项已安装。

--no-build-package no-build-package

不为特定包构建源代码分发包

也可以通过 UV_NO_BUILD_PACKAGE 环境变量设置。

--no-cache, --no-cache-dir, -n

避免从缓存中读取或写入缓存,而是在操作期间使用临时目录

也可以通过 UV_NO_CACHE 环境变量设置。

--no-config

避免发现配置文件(pyproject.tomluv.toml)。

通常,会在当前目录、父目录或用户配置目录中发现配置文件。

也可以通过 UV_NO_CONFIG 环境变量设置。

--no-default-groups

忽略默认依赖组。

uv 默认包含 tool.uv.default-groups 中定义的组。此选项将禁用该选项,但是,仍可以使用 --group 包含特定组。

也可以通过 UV_NO_DEFAULT_GROUPS 环境变量设置。

--no-dev

禁用开发依赖组 [环境变量: UV_NO_DEV=]

此选项是 --no-group dev 的别名。参见 --no-default-groups 以禁用所有默认组。

--no-editable

将任何可编辑依赖项(包括项目和任何工作空间成员)作为非可编辑项安装 [环境变量: UV_NO_EDITABLE=]

--no-extra no-extra

如果提供了 --all-extras,则排除指定的可选依赖项。

可以多次提供。

--no-group no-group

禁用指定的依赖组。

此选项始终优先于默认组、--all-groups--group

可以多次提供。

也可以通过 UV_NO_GROUP 环境变量设置。

--no-index

忽略注册表索引(例如 PyPI),而是依赖直接 URL 依赖项和通过 --find-links 提供的依赖项

--no-install-local

不安装本地路径依赖项

跳过当前项目、工作空间成员和任何其他本地(路径或可编辑)包。仅安装远程/索引依赖项。在 Docker 构建中很有用,可以先缓存繁重的第三方依赖项,并将本地包单独分层。

可以使用相反的 --only-install-local 安装本地包,排除所有远程依赖项。

--no-install-package no-install-package

不安装给定的包。

默认情况下,项目的所有依赖项都会安装到环境中。--no-install-package 选项允许排除特定的包。请注意,这可能导致环境损坏,应谨慎使用。

可以使用相反的 --only-install-package 安装指定的包,排除所有其他包。

--no-install-project

不安装当前项目。

默认情况下,当前项目及其所有依赖项都会安装到环境中。--no-install-project 选项允许排除项目,但仍会安装其所有依赖项。这在构建 Docker 映像等情况下特别有用,因为将项目与依赖项分开安装允许进行最佳的层缓存。

可以使用相反的 --only-install-project 安装项目本身,排除所有依赖项。

--no-install-workspace

不安装任何工作区成员,包括根项目。

默认情况下,所有工作空间成员及其依赖项都会安装到环境中。--no-install-workspace 选项允许排除所有工作空间成员,同时保留其依赖项。这在构建 Docker 映像等情况下特别有用,因为将工作空间与依赖项分开安装允许进行最佳的层缓存。

可以使用相反的 --only-install-workspace 安装工作空间成员,排除所有其他依赖项。

--no-managed-python

禁用对 uv 管理的 Python 版本的使用 [环境变量: UV_NO_MANAGED_PYTHON=]

相反,uv 将在系统上搜索合适的 Python 版本。

--no-progress

隐藏所有进度输出 [环境变量: UV_NO_PROGRESS=]

例如,微调器或进度条。

--no-python-downloads

禁用 Python 的自动下载。

--no-sources

解析依赖项时忽略 tool.uv.sources 表。用于根据标准兼容、可发布的包元数据进行锁定,而不是使用任何工作空间、Git、URL 或本地路径源

也可以通过 UV_NO_SOURCES 环境变量设置。

--no-sources-package no-sources-package

不要为指定包使用 tool.uv.sources 表中的源

也可以通过 UV_NO_SOURCES_PACKAGE 环境变量设置。

--offline

禁用网络访问 [环境变量: UV_OFFLINE=]

禁用时,uv 将仅使用本地缓存的数据和本地可用的文件。

--only-dev

仅包含开发依赖组。

项目及其依赖项将被省略。

此选项是 --only-group dev 的别名。暗示 --no-default-groups

--only-group only-group

仅包含来自指定依赖组的依赖项。

项目及其依赖项将被省略。

可以提供多次。暗示 --no-default-groups

--output-format output-format

选择输出格式

[默认: text]

可选值

  • text: 以人类可读的格式显示结果
  • json: 以 JSON 格式显示结果
--package package

为工作区中的特定包同步。

工作区的环境 (.venv) 将更新以反映指定的工作区成员包所声明的依赖项子集。

如果任何工作区成员不存在,uv 将以错误退出。

--prerelease prerelease

考虑预发布版本时要使用的策略。

默认情况下,uv 将接受 发布预发布版本的包,以及在声明的需求说明符中包含显式预发布标记的一方需求 (if-necessary-or-explicit)。

也可以通过 UV_PRERELEASE 环境变量设置。

可选值

  • disallow:不允许所有预发布版本
  • allow:允许所有预发布版本
  • if-necessary:如果包的所有版本都是预发布版本,则允许预发布版本
  • explicit:允许在版本需求中具有显式预发布标记的一方包的预发布版本
  • if-necessary-or-explicit:如果包的所有版本都是预发布版本,或者如果包在版本需求中具有显式预发布标记,则允许预发布版本
--project project

在给定目录中发现项目。

所有 pyproject.tomluv.toml.python-version 文件都将通过从项目根目录向上遍历目录树来发现,项目的虚拟环境 (.venv) 也是如此。

其他命令行参数(例如相对路径)将相对于当前工作目录进行解析。

参见 --directory 以完全更改工作目录。

当在 uv pip 接口中使用时,此设置无效。

也可以通过 UV_PROJECT 环境变量设置。

--python, -p python

用于项目环境的 Python 解释器。

默认情况下,使用第一个满足项目 requires-python 约束的解释器。

如果提供了虚拟环境中的 Python 解释器,包将不会同步到给定环境。该解释器将被用于在项目中创建虚拟环境。

请参阅 uv python 以了解有关 Python 发现和支持的请求格式的详细信息。

也可以通过 UV_PYTHON 环境变量设置。

--python-platform python-platform

应该为其安装需求的目标平台。

表示为“目标三元组”,这是一个描述目标平台的字符串,包括 CPU、供应商和操作系统名称,例如 x86_64-unknown-linux-gnuaarch64-apple-darwin

当针对 macOS (Darwin) 时,默认最小版本为 13.0。使用 MACOSX_DEPLOYMENT_TARGET 指定不同的最小版本,例如 14.0

当针对 iOS 时,默认最小版本为 13.0。使用 IPHONEOS_DEPLOYMENT_TARGET 指定不同的最小版本,例如 14.0

当针对 Android 时,默认最小 Android API 级别为 24。使用 ANDROID_API_LEVEL 指定不同的最小版本,例如 26

警告:指定时,uv 将选择与 目标 平台兼容的 wheel;因此,安装的分发包可能与 当前 平台不兼容。相反,从源代码构建的任何分发包都可能与 目标 平台不兼容,因为它们是为 当前 平台构建的。--python-platform 选项旨在用于高级用例。

可选值

  • windowsx86_64-pc-windows-msvc 的别名,Windows 的默认目标
  • linuxx86_64-unknown-linux-gnu 的别名,Linux 的默认目标
  • macosaarch64-apple-darwin 的别名,macOS 的默认目标
  • x86_64-pc-windows-msvc:64 位 x86 Windows 目标
  • aarch64-pc-windows-msvc:ARM64 Windows 目标
  • i686-pc-windows-msvc:32 位 x86 Windows 目标
  • x86_64-unknown-linux-gnu:x86 Linux 目标。等效于 x86_64-manylinux_2_28
  • aarch64-apple-darwin:ARM 架构 macOS 目标,如 Apple Silicon 设备上所见
  • x86_64-apple-darwin:x86 macOS 目标
  • aarch64-unknown-linux-gnu:ARM64 Linux 目标。等效于 aarch64-manylinux_2_28
  • aarch64-unknown-linux-musl:ARM64 Linux 目标
  • x86_64-unknown-linux-muslx86_64 Linux 目标
  • riscv64-unknown-linux:RISCV64 Linux 目标
  • x86_64-manylinux2014manylinux2014 平台的 x86_64 目标。等效于 x86_64-manylinux_2_17
  • x86_64-manylinux_2_17manylinux_2_17 平台的 x86_64 目标
  • x86_64-manylinux_2_28manylinux_2_28 平台的 x86_64 目标
  • x86_64-manylinux_2_31manylinux_2_31 平台的 x86_64 目标
  • x86_64-manylinux_2_32manylinux_2_32 平台的 x86_64 目标
  • x86_64-manylinux_2_33manylinux_2_33 平台的 x86_64 目标
  • x86_64-manylinux_2_34manylinux_2_34 平台的 x86_64 目标
  • x86_64-manylinux_2_35manylinux_2_35 平台的 x86_64 目标
  • x86_64-manylinux_2_36manylinux_2_36 平台的 x86_64 目标
  • x86_64-manylinux_2_37manylinux_2_37 平台的 x86_64 目标
  • x86_64-manylinux_2_38manylinux_2_38 平台的 x86_64 目标
  • x86_64-manylinux_2_39manylinux_2_39 平台的 x86_64 目标
  • x86_64-manylinux_2_40manylinux_2_40 平台的 x86_64 目标
  • aarch64-manylinux2014manylinux2014 平台的 ARM64 目标。等效于 aarch64-manylinux_2_17
  • aarch64-manylinux_2_17manylinux_2_17 平台的 ARM64 目标
  • aarch64-manylinux_2_28manylinux_2_28 平台的 ARM64 目标
  • aarch64-manylinux_2_31manylinux_2_31 平台的 ARM64 目标
  • aarch64-manylinux_2_32manylinux_2_32 平台的 ARM64 目标
  • aarch64-manylinux_2_33manylinux_2_33 平台的 ARM64 目标
  • aarch64-manylinux_2_34manylinux_2_34 平台的 ARM64 目标
  • aarch64-manylinux_2_35manylinux_2_35 平台的 ARM64 目标
  • aarch64-manylinux_2_36manylinux_2_36 平台的 ARM64 目标
  • aarch64-manylinux_2_37manylinux_2_37 平台的 ARM64 目标
  • aarch64-manylinux_2_38manylinux_2_38 平台的 ARM64 目标
  • aarch64-manylinux_2_39manylinux_2_39 平台的 ARM64 目标
  • aarch64-manylinux_2_40manylinux_2_40 平台的 ARM64 目标
  • aarch64-linux-android:ARM64 Android 目标
  • x86_64-linux-androidx86_64 Android 目标
  • wasm32-pyodide2024:使用 Pyodide 2024 平台的 wasm32 目标。旨在与 Python 3.12 一起使用
  • arm64-apple-ios:iOS 设备的 ARM64 目标
  • arm64-apple-ios-simulator:iOS 模拟器的 ARM64 目标
  • x86_64-apple-ios-simulator:iOS 模拟器的 x86_64 目标
--quiet, -q

使用安静输出。

重复此选项,例如 -qq,将启用静默模式,其中 uv 不会将任何输出写入标准输出。

--refresh

刷新所有缓存数据

--refresh-package refresh-package

刷新特定包的缓存数据

--reinstall, --force-reinstall

重新安装所有包,无论它们是否已安装。暗示 --refresh

--reinstall-package reinstall-package

重新安装特定包,无论它是否已安装。暗示 --refresh-package

--resolution resolution

在为给定包需求选择不同的兼容版本时要使用的策略。

默认情况下,uv 将使用每个包的最新兼容版本 (highest)。

也可以通过 UV_RESOLUTION 环境变量设置。

可选值

  • highest:解析每个包的最高兼容版本
  • lowest:解析每个包的最低兼容版本
  • lowest-direct:解析任何直接依赖项的最低兼容版本,以及任何传递依赖项的最高兼容版本
--script script

同步 Python 脚本的环境,而不是当前项目。

如果提供,uv 将根据脚本的内联元数据表(符合 PEP 723)同步依赖项。

--upgrade, -U

允许包升级,忽略任何现有输出文件中的固定版本。暗示 --refresh

--upgrade-package, -P upgrade-package

允许升级特定包,忽略任何现有输出文件中的固定版本。暗示 --refresh-package

--verbose, -v

使用详细输出。

您可以使用 RUST_LOG 环境变量配置细粒度日志记录。(https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html#directives

uv lock

更新项目的锁文件。

如果项目锁文件 (uv.lock) 不存在,将会创建它。如果存在锁文件,其内容将用作解析时的偏好设置。

如果项目的依赖项没有更改,除非提供了 --upgrade 标志,否则锁定操作将不会产生任何影响。

用法

uv lock [OPTIONS]

Options (选项)

--allow-insecure-host, --trusted-host allow-insecure-host

允许与主机建立不安全连接。

可以多次提供。

期望接收主机名(例如 localhost)、主机-端口对(例如 localhost:8080)或 URL(例如 https://)。

警告:此列表中的主机不会根据系统的证书存储进行验证。仅在具有受信任来源的安全网络中使用 --allow-insecure-host,因为它会绕过 SSL 验证,可能会使您面临 MITM 攻击。

也可以通过 UV_INSECURE_HOST 环境变量设置。

--cache-dir cache-dir

缓存目录的路径。

默认在 macOS 和 Linux 上为 $XDG_CACHE_HOME/uv$HOME/.cache/uv,在 Windows 上为 %LOCALAPPDATA%\uv\cache

要查看缓存目录的位置,请运行 uv cache dir

也可以通过 UV_CACHE_DIR 环境变量设置。

--check

检查锁文件是否为最新。

断言 uv.lock 在解析后保持不变。如果缺少锁文件或需要更新,uv 将以错误退出。

等同于 --locked

--check-exists, --frozen

断言 uv.lock 存在,而不检查其是否为最新 [env: UV_FROZEN=]

等同于 --frozen

--color color-choice

控制输出中颜色的使用。

默认情况下,uv 在写入终端时会自动检测对颜色的支持。

可选值

  • auto:仅在输出到支持颜色的终端或 TTY 时启用彩色输出
  • always:无论检测到的环境如何,都启用彩色输出
  • never:禁用彩色输出
--config-file config-file

用于配置的 uv.toml 文件路径。

虽然 uv 配置可以包含在 pyproject.toml 文件中,但在这种上下文下是不允许的。

也可以通过 UV_CONFIG_FILE 环境变量设置。

--config-setting, --config-settings, -C config-setting

传递给 PEP 517 构建后端的设置,指定为 KEY=VALUE

--config-settings-package, --config-settings-package config-settings-package

传递给特定包的 PEP 517 构建后端的设置,指定为 PACKAGE:KEY=VALUE

--default-index default-index

默认包索引的 URL(默认:https://pypi.ac.cn/simple)。

接受符合 PEP 503(简单存储库 API)的存储库,或以相同格式布局的本地目录。

此标志给出的索引优先级低于通过 --index 标志指定的所有其他索引。

也可以通过 UV_DEFAULT_INDEX 环境变量设置。

--directory directory

在运行命令之前切换到指定目录。

相对路径将以给定目录为基础进行解析。

参见 --project 仅更改项目根目录。

也可以通过 UV_WORKING_DIR 环境变量设置。

--dry-run

执行预演,不写入锁文件。

在预演模式下,uv 将解析项目的依赖项并报告结果更改,但不会将锁文件写入磁盘。

--exclude-newer exclude-newer

将候选包限制为给定日期之前上传的包。

接受 RFC 3339 时间戳(例如 2006-12-02T02:07:43Z)、相同格式的本地日期(例如 2006-12-02,基于系统配置的时区解析)、“友好”持续时间(例如 24 hours1 week30 days)或 ISO 8601 持续时间(例如 PT24HP7DP30D)。

持续时间不尊重本地时区的语义,始终假定一天为 24 小时(例如忽略夏令时转换)并解析为固定的秒数。不允许使用月和年等日历单位。

也可以通过 UV_EXCLUDE_NEWER 环境变量设置。

--exclude-newer-package exclude-newer-package

将特定包的候选包限制为给定日期之前上传的包。

接受 PACKAGE=DATE 格式的包-日期对,其中 DATE 是 RFC 3339 时间戳(例如 2006-12-02T02:07:43Z)、相同格式的本地日期(例如 2006-12-02,基于系统配置的时区解析)、“友好”持续时间(例如 24 hours1 week30 days)或 ISO 8601 持续时间(例如 PT24HP7DP30D)。

持续时间不尊重本地时区的语义,始终假定一天为 24 小时(例如忽略夏令时转换)并解析为固定的秒数。不允许使用月和年等日历单位。

可以为不同的包多次提供。

--extra-index-url extra-index-url

(已弃用:请改用 --index)除 --index-url 之外要使用的额外包索引 URL。

接受符合 PEP 503(简单存储库 API)的存储库,或以相同格式布局的本地目录。

通过此标志提供的所有索引的优先级都高于 --index-url(默认为 PyPI)指定的索引。当提供多个 --extra-index-url 标志时,较早的值具有更高的优先级。

也可以通过 UV_EXTRA_INDEX_URL 环境变量设置。

除在注册表索引中找到的位置外,还要搜索候选分发包的位置。

如果是路径,则目标必须是包含顶层 wheel 文件 (.whl) 或源代码分发包(例如 .tar.gz.zip)的目录。

如果是 URL,页面必须包含符合上述格式的包文件链接的平面列表。

也可以通过 UV_FIND_LINKS 环境变量设置。

--fork-strategy fork-strategy

在跨 Python 版本和平台选择给定包的多个版本时要使用的策略。

默认情况下,uv 将优化为为每个支持的 Python 版本 (requires-python) 选择每个包的最新版本,同时最小化跨平台的选定版本数量。

fewest 下,uv 将最小化每个包的选定版本数量,优先选择与更广泛支持的 Python 版本或平台兼容的旧版本。

也可以通过 UV_FORK_STRATEGY 环境变量设置。

可选值

  • fewest:优化为为每个包选择最少数量的版本。如果旧版本与更广泛的支持 Python 版本或平台兼容,则可能优先选择旧版本
  • requires-python:优化为为每个支持的 Python 版本选择每个包的最新支持版本
--help, -h

显示此命令的简明帮助信息

--index index

除默认索引外,解析依赖项时要使用的 URL。

接受符合 PEP 503(简单存储库 API)的存储库,或以相同格式布局的本地目录。

通过此标志提供的所有索引的优先级都高于 --default-index(默认为 PyPI)指定的索引。当提供多个 --index 标志时,较早的值具有更高的优先级。

不支持将索引名称用作值。相对路径必须使用 Unix 上的 ./../,或 Windows 上的 .\\..\\./../ 与索引名称区分开来。

也可以通过 UV_INDEX 环境变量设置。

--index-strategy index-strategy

在针对多个索引 URL 进行解析时要使用的策略。

默认情况下,uv 将在给定包可用的第一个索引处停止,并将解析限制为该第一个索引中存在的那些包 (first-index)。这可以防止“依赖混淆”攻击,攻击者可以在该攻击中以相同的名称将恶意包上传到备用索引。

也可以通过 UV_INDEX_STRATEGY 环境变量设置。

可选值

  • first-index:仅使用第一个返回给定包名称匹配结果的索引中的结果
  • unsafe-first-match:搜索跨所有索引的每个包名称,在转到下一个索引之前耗尽第一个索引中的版本
  • unsafe-best-match:搜索跨所有索引的每个包名称,优先选择找到的“最佳”版本。如果包版本存在于多个索引中,则仅查看第一个索引的条目
--index-url, -i index-url

(已弃用:请改用 --default-index)Python 包索引的 URL(默认:https://pypi.ac.cn/simple)。

接受符合 PEP 503(简单存储库 API)的存储库,或以相同格式布局的本地目录。

此标志给出的索引优先级低于通过 --extra-index-url 标志指定的所有其他索引。

也可以通过 UV_INDEX_URL 环境变量设置。

--keyring-provider keyring-provider

尝试使用 keyring 进行索引 URL 的身份验证。

目前,仅支持 --keyring-provider subprocess,它将 uv 配置为使用 keyring CLI 来处理身份验证。

默认为 disabled

也可以通过 UV_KEYRING_PROVIDER 环境变量设置。

可选值

  • disabled:不使用密钥环进行凭据查找
  • subprocess:使用 keyring 命令进行凭据查找

从全局缓存安装包时要使用的方法。

此选项仅在构建源码包时使用。

默认在 macOS 和 Linux 上为 clone(也称为写时复制),在 Windows 上为 hardlink

警告:不建议使用符号链接链接模式,因为它们会在缓存和目标环境之间创建紧密的耦合。例如,清除缓存 (uv cache clean) 将通过移除底层源文件来破坏所有已安装的包。请谨慎使用符号链接。

也可以通过 UV_LINK_MODE 环境变量设置。

可选值

  • clone:将包从源克隆(即写时复制)到目标
  • copy:将包从源复制到目标
  • hardlink:将包从源硬链接到目标
  • symlink:将包从源符号链接到目标
--managed-python

要求使用 uv 管理的 Python 版本 [环境变量: UV_MANAGED_PYTHON=]

默认情况下,uv 优先使用其管理的 Python 版本。但是,如果未安装 uv 管理的 Python,它将使用系统 Python 版本。此选项将禁用系统 Python 版本的调用。

--native-tls

是否从平台的原生存储中加载 TLS 证书 [环境变量: UV_NATIVE_TLS=]

默认情况下,uv 从绑定的 webpki-roots crate 中加载证书。webpki-roots 是一组来自 Mozilla 的可靠信任根,在 uv 中包含它们可提高可移植性和性能(特别是在 macOS 上)。

然而,在某些情况下,您可能希望使用平台的原生证书存储,特别是当您依赖于系统证书存储中包含的公司信任根(例如强制代理)时。

--no-binary

不安装预构建的 wheel。

给定的包将从源代码构建和安装。如果可用,解析器仍将使用预构建的 wheel 来提取包元数据。

也可以通过 UV_NO_BINARY 环境变量设置。

--no-binary-package no-binary-package

不为特定包安装预构建的 wheel

也可以通过 UV_NO_BINARY_PACKAGE 环境变量设置。

--no-build

不构建源代码分发包。

启用后,解析将不会运行任意 Python 代码。已构建的源代码分发包的缓存 wheel 将被重用,但需要构建分发包的操作将报错退出。

也可以通过 UV_NO_BUILD 环境变量设置。

--no-build-isolation

构建源代码分发包时禁用隔离。

假定 PEP 518 指定的构建依赖项已安装。

也可以通过 UV_NO_BUILD_ISOLATION 环境变量设置。

--no-build-isolation-package no-build-isolation-package

为特定包构建源代码分发包时禁用隔离。

假定包的 PEP 518 指定的构建依赖项已安装。

--no-build-package no-build-package

不为特定包构建源代码分发包

也可以通过 UV_NO_BUILD_PACKAGE 环境变量设置。

--no-cache, --no-cache-dir, -n

避免从缓存中读取或写入缓存,而是在操作期间使用临时目录

也可以通过 UV_NO_CACHE 环境变量设置。

--no-config

避免发现配置文件(pyproject.tomluv.toml)。

通常,会在当前目录、父目录或用户配置目录中发现配置文件。

也可以通过 UV_NO_CONFIG 环境变量设置。

--no-index

忽略注册表索引(例如 PyPI),而是依赖直接 URL 依赖项和通过 --find-links 提供的依赖项

--no-managed-python

禁用对 uv 管理的 Python 版本的使用 [环境变量: UV_NO_MANAGED_PYTHON=]

相反,uv 将在系统上搜索合适的 Python 版本。

--no-progress

隐藏所有进度输出 [环境变量: UV_NO_PROGRESS=]

例如,微调器或进度条。

--no-python-downloads

禁用 Python 的自动下载。

--no-sources

解析依赖项时忽略 tool.uv.sources 表。用于根据标准兼容、可发布的包元数据进行锁定,而不是使用任何工作空间、Git、URL 或本地路径源

也可以通过 UV_NO_SOURCES 环境变量设置。

--no-sources-package no-sources-package

不要为指定包使用 tool.uv.sources 表中的源

也可以通过 UV_NO_SOURCES_PACKAGE 环境变量设置。

--offline

禁用网络访问 [环境变量: UV_OFFLINE=]

禁用时,uv 将仅使用本地缓存的数据和本地可用的文件。

--prerelease prerelease

考虑预发布版本时要使用的策略。

默认情况下,uv 将接受 发布预发布版本的包,以及在声明的需求说明符中包含显式预发布标记的一方需求 (if-necessary-or-explicit)。

也可以通过 UV_PRERELEASE 环境变量设置。

可选值

  • disallow:不允许所有预发布版本
  • allow:允许所有预发布版本
  • if-necessary:如果包的所有版本都是预发布版本,则允许预发布版本
  • explicit:允许在版本需求中具有显式预发布标记的一方包的预发布版本
  • if-necessary-or-explicit:如果包的所有版本都是预发布版本,或者如果包在版本需求中具有显式预发布标记,则允许预发布版本
--project project

在给定目录中发现项目。

所有 pyproject.tomluv.toml.python-version 文件都将通过从项目根目录向上遍历目录树来发现,项目的虚拟环境 (.venv) 也是如此。

其他命令行参数(例如相对路径)将相对于当前工作目录进行解析。

参见 --directory 以完全更改工作目录。

当在 uv pip 接口中使用时,此设置无效。

也可以通过 UV_PROJECT 环境变量设置。

--python, -p python

解析过程中使用的 Python 解释器。

构建源码包时需要 Python 解释器来确定没有 wheel 时的包元数据。

如果未设置 requires-python,解释器也被用作最低 Python 版本的后备值。

请参阅 uv python 以了解有关 Python 发现和支持的请求格式的详细信息。

也可以通过 UV_PYTHON 环境变量设置。

--quiet, -q

使用安静输出。

重复此选项,例如 -qq,将启用静默模式,其中 uv 不会将任何输出写入标准输出。

--refresh

刷新所有缓存数据

--refresh-package refresh-package

刷新特定包的缓存数据

--resolution resolution

在为给定包需求选择不同的兼容版本时要使用的策略。

默认情况下,uv 将使用每个包的最新兼容版本 (highest)。

也可以通过 UV_RESOLUTION 环境变量设置。

可选值

  • highest:解析每个包的最高兼容版本
  • lowest:解析每个包的最低兼容版本
  • lowest-direct:解析任何直接依赖项的最低兼容版本,以及任何传递依赖项的最高兼容版本
--script script

锁定指定的 Python 脚本,而不是当前项目。

如果提供,uv 将根据脚本的内联元数据表(符合 PEP 723)将脚本锁定到与其相邻的 .lock 文件。

--upgrade, -U

允许包升级,忽略任何现有输出文件中的固定版本。暗示 --refresh

--upgrade-package, -P upgrade-package

允许升级特定包,忽略任何现有输出文件中的固定版本。暗示 --refresh-package

--verbose, -v

使用详细输出。

您可以使用 RUST_LOG 环境变量配置细粒度日志记录。(https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html#directives

uv export

将项目的锁文件导出为其他格式。

目前支持 requirements.txtpylock.toml (PEP 751) 和 CycloneDX v1.5 JSON 输出格式。

除非提供了 --locked--frozen 标志,否则项目会在导出前重新锁定。

uv 将在当前目录或任何父目录中搜索项目。如果找不到项目,uv 将报错退出。

如果在工作区中操作,默认导出根项目;但是,可以使用 --package 选项选择特定成员。

用法

uv export [OPTIONS]

Options (选项)

--all-extras

包含所有可选依赖项

--all-groups

包含所有依赖组中的依赖项。

可以使用 --no-group 排除特定组。

--all-packages

导出整个工作区。

所有工作区成员的依赖项都将包含在导出的 requirements 文件中。

通过 --extra--group 或相关选项指定的任何额外内容或组将应用于所有工作空间成员。

--allow-insecure-host, --trusted-host allow-insecure-host

允许与主机建立不安全连接。

可以多次提供。

期望接收主机名(例如 localhost)、主机-端口对(例如 localhost:8080)或 URL(例如 https://)。

警告:此列表中的主机不会根据系统的证书存储进行验证。仅在具有受信任来源的安全网络中使用 --allow-insecure-host,因为它会绕过 SSL 验证,可能会使您面临 MITM 攻击。

也可以通过 UV_INSECURE_HOST 环境变量设置。

--cache-dir cache-dir

缓存目录的路径。

默认在 macOS 和 Linux 上为 $XDG_CACHE_HOME/uv$HOME/.cache/uv,在 Windows 上为 %LOCALAPPDATA%\uv\cache

要查看缓存目录的位置,请运行 uv cache dir

也可以通过 UV_CACHE_DIR 环境变量设置。

--color color-choice

控制输出中颜色的使用。

默认情况下,uv 在写入终端时会自动检测对颜色的支持。

可选值

  • auto:仅在输出到支持颜色的终端或 TTY 时启用彩色输出
  • always:无论检测到的环境如何,都启用彩色输出
  • never:禁用彩色输出
--config-file config-file

用于配置的 uv.toml 文件路径。

虽然 uv 配置可以包含在 pyproject.toml 文件中,但在这种上下文下是不允许的。

也可以通过 UV_CONFIG_FILE 环境变量设置。

--config-setting, --config-settings, -C config-setting

传递给 PEP 517 构建后端的设置,指定为 KEY=VALUE

--config-settings-package, --config-settings-package config-settings-package

传递给特定包的 PEP 517 构建后端的设置,指定为 PACKAGE:KEY=VALUE

--default-index default-index

默认包索引的 URL(默认:https://pypi.ac.cn/simple)。

接受符合 PEP 503(简单存储库 API)的存储库,或以相同格式布局的本地目录。

此标志给出的索引优先级低于通过 --index 标志指定的所有其他索引。

也可以通过 UV_DEFAULT_INDEX 环境变量设置。

--directory directory

在运行命令之前切换到指定目录。

相对路径将以给定目录为基础进行解析。

参见 --project 仅更改项目根目录。

也可以通过 UV_WORKING_DIR 环境变量设置。

--exclude-newer exclude-newer

将候选包限制为给定日期之前上传的包。

接受 RFC 3339 时间戳(例如 2006-12-02T02:07:43Z)、相同格式的本地日期(例如 2006-12-02,基于系统配置的时区解析)、“友好”持续时间(例如 24 hours1 week30 days)或 ISO 8601 持续时间(例如 PT24HP7DP30D)。

持续时间不尊重本地时区的语义,始终假定一天为 24 小时(例如忽略夏令时转换)并解析为固定的秒数。不允许使用月和年等日历单位。

也可以通过 UV_EXCLUDE_NEWER 环境变量设置。

--exclude-newer-package exclude-newer-package

将特定包的候选包限制为给定日期之前上传的包。

接受 PACKAGE=DATE 格式的包-日期对,其中 DATE 是 RFC 3339 时间戳(例如 2006-12-02T02:07:43Z)、相同格式的本地日期(例如 2006-12-02,基于系统配置的时区解析)、“友好”持续时间(例如 24 hours1 week30 days)或 ISO 8601 持续时间(例如 PT24HP7DP30D)。

持续时间不尊重本地时区的语义,始终假定一天为 24 小时(例如忽略夏令时转换)并解析为固定的秒数。不允许使用月和年等日历单位。

可以为不同的包多次提供。

--extra extra

包含来自指定额外名称的可选依赖项。

可以提供多次。

--extra-index-url extra-index-url

(已弃用:请改用 --index)除 --index-url 之外要使用的额外包索引 URL。

接受符合 PEP 503(简单存储库 API)的存储库,或以相同格式布局的本地目录。

通过此标志提供的所有索引的优先级都高于 --index-url(默认为 PyPI)指定的索引。当提供多个 --extra-index-url 标志时,较早的值具有更高的优先级。

也可以通过 UV_EXTRA_INDEX_URL 环境变量设置。

除在注册表索引中找到的位置外,还要搜索候选分发包的位置。

如果是路径,则目标必须是包含顶层 wheel 文件 (.whl) 或源代码分发包(例如 .tar.gz.zip)的目录。

如果是 URL,页面必须包含符合上述格式的包文件链接的平面列表。

也可以通过 UV_FIND_LINKS 环境变量设置。

--fork-strategy fork-strategy

在跨 Python 版本和平台选择给定包的多个版本时要使用的策略。

默认情况下,uv 将优化为为每个支持的 Python 版本 (requires-python) 选择每个包的最新版本,同时最小化跨平台的选定版本数量。

fewest 下,uv 将最小化每个包的选定版本数量,优先选择与更广泛支持的 Python 版本或平台兼容的旧版本。

也可以通过 UV_FORK_STRATEGY 环境变量设置。

可选值

  • fewest:优化为为每个包选择最少数量的版本。如果旧版本与更广泛的支持 Python 版本或平台兼容,则可能优先选择旧版本
  • requires-python:优化为为每个支持的 Python 版本选择每个包的最新支持版本
--format format

uv.lock 应导出的格式。

支持 requirements.txtpylock.toml (PEP 751) 和 CycloneDX v1.5 JSON 输出格式。

如果提供了输出文件,uv 将根据文件扩展名推断输出格式。否则,默认为 requirements.txt

可选值

  • requirements.txt: 以 requirements.txt 格式导出
  • pylock.toml: 以 pylock.toml 格式导出
  • cyclonedx1.5: 以 CycloneDX v1.5 JSON 格式导出
--frozen

在导出前不更新 uv.lock [env: UV_FROZEN=]

如果 uv.lock 不存在,uv 将以错误退出。

--group group

包含来自指定依赖组的依赖项。

可以多次提供。

--help, -h

显示此命令的简明帮助信息

--index index

除默认索引外,解析依赖项时要使用的 URL。

接受符合 PEP 503(简单存储库 API)的存储库,或以相同格式布局的本地目录。

通过此标志提供的所有索引的优先级都高于 --default-index(默认为 PyPI)指定的索引。当提供多个 --index 标志时,较早的值具有更高的优先级。

不支持将索引名称用作值。相对路径必须使用 Unix 上的 ./../,或 Windows 上的 .\\..\\./../ 与索引名称区分开来。

也可以通过 UV_INDEX 环境变量设置。

--index-strategy index-strategy

在针对多个索引 URL 进行解析时要使用的策略。

默认情况下,uv 将在给定包可用的第一个索引处停止,并将解析限制为该第一个索引中存在的那些包 (first-index)。这可以防止“依赖混淆”攻击,攻击者可以在该攻击中以相同的名称将恶意包上传到备用索引。

也可以通过 UV_INDEX_STRATEGY 环境变量设置。

可选值

  • first-index:仅使用第一个返回给定包名称匹配结果的索引中的结果
  • unsafe-first-match:搜索跨所有索引的每个包名称,在转到下一个索引之前耗尽第一个索引中的版本
  • unsafe-best-match:搜索跨所有索引的每个包名称,优先选择找到的“最佳”版本。如果包版本存在于多个索引中,则仅查看第一个索引的条目
--index-url, -i index-url

(已弃用:请改用 --default-index)Python 包索引的 URL(默认:https://pypi.ac.cn/simple)。

接受符合 PEP 503(简单存储库 API)的存储库,或以相同格式布局的本地目录。

此标志给出的索引优先级低于通过 --extra-index-url 标志指定的所有其他索引。

也可以通过 UV_INDEX_URL 环境变量设置。

--keyring-provider keyring-provider

尝试使用 keyring 进行索引 URL 的身份验证。

目前,仅支持 --keyring-provider subprocess,它将 uv 配置为使用 keyring CLI 来处理身份验证。

默认为 disabled

也可以通过 UV_KEYRING_PROVIDER 环境变量设置。

可选值

  • disabled:不使用密钥环进行凭据查找
  • subprocess:使用 keyring 命令进行凭据查找

从全局缓存安装包时要使用的方法。

此选项仅在构建源码包时使用。

默认在 macOS 和 Linux 上为 clone(也称为写时复制),在 Windows 上为 hardlink

警告:不建议使用符号链接链接模式,因为它们会在缓存和目标环境之间创建紧密的耦合。例如,清除缓存 (uv cache clean) 将通过移除底层源文件来破坏所有已安装的包。请谨慎使用符号链接。

也可以通过 UV_LINK_MODE 环境变量设置。

可选值

  • clone:将包从源克隆(即写时复制)到目标
  • copy:将包从源复制到目标
  • hardlink:将包从源硬链接到目标
  • symlink:将包从源符号链接到目标
--locked

断言 uv.lock 将保持不变 [环境变量: UV_LOCKED=]

要求锁文件是最新的。如果锁文件缺失或需要更新,uv 将报错退出。

--managed-python

要求使用 uv 管理的 Python 版本 [环境变量: UV_MANAGED_PYTHON=]

默认情况下,uv 优先使用其管理的 Python 版本。但是,如果未安装 uv 管理的 Python,它将使用系统 Python 版本。此选项将禁用系统 Python 版本的调用。

--native-tls

是否从平台的原生存储中加载 TLS 证书 [环境变量: UV_NATIVE_TLS=]

默认情况下,uv 从绑定的 webpki-roots crate 中加载证书。webpki-roots 是一组来自 Mozilla 的可靠信任根,在 uv 中包含它们可提高可移植性和性能(特别是在 macOS 上)。

然而,在某些情况下,您可能希望使用平台的原生证书存储,特别是当您依赖于系统证书存储中包含的公司信任根(例如强制代理)时。

--no-annotate

排除指示每个包来源的注释

--no-binary

不安装预构建的 wheel。

给定的包将从源代码构建和安装。如果可用,解析器仍将使用预构建的 wheel 来提取包元数据。

也可以通过 UV_NO_BINARY 环境变量设置。

--no-binary-package no-binary-package

不为特定包安装预构建的 wheel

也可以通过 UV_NO_BINARY_PACKAGE 环境变量设置。

--no-build

不构建源代码分发包。

启用后,解析将不会运行任意 Python 代码。已构建的源代码分发包的缓存 wheel 将被重用,但需要构建分发包的操作将报错退出。

也可以通过 UV_NO_BUILD 环境变量设置。

--no-build-isolation

构建源代码分发包时禁用隔离。

假定 PEP 518 指定的构建依赖项已安装。

也可以通过 UV_NO_BUILD_ISOLATION 环境变量设置。

--no-build-isolation-package no-build-isolation-package

为特定包构建源代码分发包时禁用隔离。

假定包的 PEP 518 指定的构建依赖项已安装。

--no-build-package no-build-package

不为特定包构建源代码分发包

也可以通过 UV_NO_BUILD_PACKAGE 环境变量设置。

--no-cache, --no-cache-dir, -n

避免从缓存中读取或写入缓存,而是在操作期间使用临时目录

也可以通过 UV_NO_CACHE 环境变量设置。

--no-config

避免发现配置文件(pyproject.tomluv.toml)。

通常,会在当前目录、父目录或用户配置目录中发现配置文件。

也可以通过 UV_NO_CONFIG 环境变量设置。

--no-default-groups

忽略默认依赖组。

uv 默认包含 tool.uv.default-groups 中定义的组。此选项将禁用该选项,但是,仍可以使用 --group 包含特定组。

也可以通过 UV_NO_DEFAULT_GROUPS 环境变量设置。

--no-dev

禁用开发依赖组 [环境变量: UV_NO_DEV=]

此选项是 --no-group dev 的别名。参见 --no-default-groups 以禁用所有默认组。

--no-editable

将任何可编辑依赖项(包括项目和任何工作区成员)导出为不可编辑 [env: UV_NO_EDITABLE=]

--no-emit-local, --no-install-local

不在导出的 requirements 中包含本地路径依赖项。

省略当前项目、工作区成员和任何其他本地(路径或可编辑)包。仅写入远程/索引依赖项。这对希望优先导出和缓存第三方依赖项的 Docker 和 CI 流程非常有用。

反向操作 --only-emit-local 可用于输出本地包,排除所有远程依赖项。

--no-emit-package, --no-install-package no-emit-package

不输出给定的包。

默认情况下,项目的所有依赖项都包含在导出的 requirements 文件中。--no-emit-package 选项允许排除特定的包。

反向操作 --only-emit-package 可用于输出指定的包,排除所有其他包。

--no-emit-project, --no-install-project

不输出当前项目。

默认情况下,当前项目及其所有依赖项都包含在导出的 requirements 文件中。--no-emit-project 选项允许排除当前项目,但仍保留其所有依赖项。

反向操作 --only-emit-project 可用于输出项目本身,排除所有依赖项。

--no-emit-workspace, --no-install-workspace

不输出任何工作区成员,包括根项目。

默认情况下,所有工作区成员及其依赖项都包含在导出的 requirements 文件中。--no-emit-workspace 选项允许在保留依赖项的同时排除所有工作区成员。

反向操作 --only-emit-workspace 可用于输出工作区成员,排除所有其他依赖项。

--no-extra no-extra

如果提供了 --all-extras,则排除指定的可选依赖项。

可以多次提供。

--no-group no-group

禁用指定的依赖组。

此选项始终优先于默认组、--all-groups--group

可以多次提供。

也可以通过 UV_NO_GROUP 环境变量设置。

--no-hashes

在生成的输出中省略哈希

--no-header

排除生成输出文件顶部的注释头

--no-index

忽略注册表索引(例如 PyPI),而是依赖直接 URL 依赖项和通过 --find-links 提供的依赖项

--no-managed-python

禁用对 uv 管理的 Python 版本的使用 [环境变量: UV_NO_MANAGED_PYTHON=]

相反,uv 将在系统上搜索合适的 Python 版本。

--no-progress

隐藏所有进度输出 [环境变量: UV_NO_PROGRESS=]

例如,微调器或进度条。

--no-python-downloads

禁用 Python 的自动下载。

--no-sources

解析依赖项时忽略 tool.uv.sources 表。用于根据标准兼容、可发布的包元数据进行锁定,而不是使用任何工作空间、Git、URL 或本地路径源

也可以通过 UV_NO_SOURCES 环境变量设置。

--no-sources-package no-sources-package

不要为指定包使用 tool.uv.sources 表中的源

也可以通过 UV_NO_SOURCES_PACKAGE 环境变量设置。

--offline

禁用网络访问 [环境变量: UV_OFFLINE=]

禁用时,uv 将仅使用本地缓存的数据和本地可用的文件。

--only-dev

仅包含开发依赖组。

项目及其依赖项将被省略。

此选项是 --only-group dev 的别名。暗示 --no-default-groups

--only-group only-group

仅包含来自指定依赖组的依赖项。

项目及其依赖项将被省略。

可以提供多次。暗示 --no-default-groups

--output-file, -o output-file

将导出的 requirements 写入指定文件

--package package

导出工作区中特定包的依赖项。

如果任何工作区成员不存在,uv 将以错误退出。

--prerelease prerelease

考虑预发布版本时要使用的策略。

默认情况下,uv 将接受 发布预发布版本的包,以及在声明的需求说明符中包含显式预发布标记的一方需求 (if-necessary-or-explicit)。

也可以通过 UV_PRERELEASE 环境变量设置。

可选值

  • disallow:不允许所有预发布版本
  • allow:允许所有预发布版本
  • if-necessary:如果包的所有版本都是预发布版本,则允许预发布版本
  • explicit:允许在版本需求中具有显式预发布标记的一方包的预发布版本
  • if-necessary-or-explicit:如果包的所有版本都是预发布版本,或者如果包在版本需求中具有显式预发布标记,则允许预发布版本
--project project

在给定目录中发现项目。

所有 pyproject.tomluv.toml.python-version 文件都将通过从项目根目录向上遍历目录树来发现,项目的虚拟环境 (.venv) 也是如此。

其他命令行参数(例如相对路径)将相对于当前工作目录进行解析。

参见 --directory 以完全更改工作目录。

当在 uv pip 接口中使用时,此设置无效。

也可以通过 UV_PROJECT 环境变量设置。

--prune package

从依赖树中修剪(prune)给定的包。

修剪后的包将从导出的 requirements 文件中排除,修剪包移除后不再需要的任何依赖项也会被排除。

--python, -p python

解析过程中使用的 Python 解释器。

构建源码包时需要 Python 解释器来确定没有 wheel 时的包元数据。

如果未设置 requires-python,解释器也被用作最低 Python 版本的后备值。

请参阅 uv python 以了解有关 Python 发现和支持的请求格式的详细信息。

也可以通过 UV_PYTHON 环境变量设置。

--quiet, -q

使用安静输出。

重复此选项,例如 -qq,将启用静默模式,其中 uv 不会将任何输出写入标准输出。

--refresh

刷新所有缓存数据

--refresh-package refresh-package

刷新特定包的缓存数据

--resolution resolution

在为给定包需求选择不同的兼容版本时要使用的策略。

默认情况下,uv 将使用每个包的最新兼容版本 (highest)。

也可以通过 UV_RESOLUTION 环境变量设置。

可选值

  • highest:解析每个包的最高兼容版本
  • lowest:解析每个包的最低兼容版本
  • lowest-direct:解析任何直接依赖项的最低兼容版本,以及任何传递依赖项的最高兼容版本
--script script

导出指定 PEP 723 Python 脚本的依赖项,而不是当前项目。

如果提供,uv 将根据脚本的内联元数据表(符合 PEP 723)解析依赖项。

--upgrade, -U

允许包升级,忽略任何现有输出文件中的固定版本。暗示 --refresh

--upgrade-package, -P upgrade-package

允许升级特定包,忽略任何现有输出文件中的固定版本。暗示 --refresh-package

--verbose, -v

使用详细输出。

您可以使用 RUST_LOG 环境变量配置细粒度日志记录。(https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html#directives

uv tree

显示项目的依赖树

用法

uv tree [OPTIONS]

Options (选项)

--all-groups

包含所有依赖组中的依赖项。

可以使用 --no-group 排除特定组。

--allow-insecure-host, --trusted-host allow-insecure-host

允许与主机建立不安全连接。

可以多次提供。

期望接收主机名(例如 localhost)、主机-端口对(例如 localhost:8080)或 URL(例如 https://)。

警告:此列表中的主机不会根据系统的证书存储进行验证。仅在具有受信任来源的安全网络中使用 --allow-insecure-host,因为它会绕过 SSL 验证,可能会使您面临 MITM 攻击。

也可以通过 UV_INSECURE_HOST 环境变量设置。

--cache-dir cache-dir

缓存目录的路径。

默认在 macOS 和 Linux 上为 $XDG_CACHE_HOME/uv$HOME/.cache/uv,在 Windows 上为 %LOCALAPPDATA%\uv\cache

要查看缓存目录的位置,请运行 uv cache dir

也可以通过 UV_CACHE_DIR 环境变量设置。

--color color-choice

控制输出中颜色的使用。

默认情况下,uv 在写入终端时会自动检测对颜色的支持。

可选值

  • auto:仅在输出到支持颜色的终端或 TTY 时启用彩色输出
  • always:无论检测到的环境如何,都启用彩色输出
  • never:禁用彩色输出
--config-file config-file

用于配置的 uv.toml 文件路径。

虽然 uv 配置可以包含在 pyproject.toml 文件中,但在这种上下文下是不允许的。

也可以通过 UV_CONFIG_FILE 环境变量设置。

--config-setting, --config-settings, -C config-setting

传递给 PEP 517 构建后端的设置,指定为 KEY=VALUE

--config-settings-package, --config-settings-package config-settings-package

传递给特定包的 PEP 517 构建后端的设置,指定为 PACKAGE:KEY=VALUE

--default-index default-index

默认包索引的 URL(默认:https://pypi.ac.cn/simple)。

接受符合 PEP 503(简单存储库 API)的存储库,或以相同格式布局的本地目录。

此标志给出的索引优先级低于通过 --index 标志指定的所有其他索引。

也可以通过 UV_DEFAULT_INDEX 环境变量设置。

--depth, -d depth

依赖树的最大显示深度

[默认: 255]

--directory directory

在运行命令之前切换到指定目录。

相对路径将以给定目录为基础进行解析。

参见 --project 仅更改项目根目录。

也可以通过 UV_WORKING_DIR 环境变量设置。

--exclude-newer exclude-newer

将候选包限制为给定日期之前上传的包。

接受 RFC 3339 时间戳(例如 2006-12-02T02:07:43Z)、相同格式的本地日期(例如 2006-12-02,基于系统配置的时区解析)、“友好”持续时间(例如 24 hours1 week30 days)或 ISO 8601 持续时间(例如 PT24HP7DP30D)。

持续时间不尊重本地时区的语义,始终假定一天为 24 小时(例如忽略夏令时转换)并解析为固定的秒数。不允许使用月和年等日历单位。

也可以通过 UV_EXCLUDE_NEWER 环境变量设置。

--exclude-newer-package exclude-newer-package

将特定包的候选包限制为给定日期之前上传的包。

接受 PACKAGE=DATE 格式的包-日期对,其中 DATE 是 RFC 3339 时间戳(例如 2006-12-02T02:07:43Z)、相同格式的本地日期(例如 2006-12-02,基于系统配置的时区解析)、“友好”持续时间(例如 24 hours1 week30 days)或 ISO 8601 持续时间(例如 PT24HP7DP30D)。

持续时间不尊重本地时区的语义,始终假定一天为 24 小时(例如忽略夏令时转换)并解析为固定的秒数。不允许使用月和年等日历单位。

可以为不同的包多次提供。

--extra-index-url extra-index-url

(已弃用:请改用 --index)除 --index-url 之外要使用的额外包索引 URL。

接受符合 PEP 503(简单存储库 API)的存储库,或以相同格式布局的本地目录。

通过此标志提供的所有索引的优先级都高于 --index-url(默认为 PyPI)指定的索引。当提供多个 --extra-index-url 标志时,较早的值具有更高的优先级。

也可以通过 UV_EXTRA_INDEX_URL 环境变量设置。

除在注册表索引中找到的位置外,还要搜索候选分发包的位置。

如果是路径,则目标必须是包含顶层 wheel 文件 (.whl) 或源代码分发包(例如 .tar.gz.zip)的目录。

如果是 URL,页面必须包含符合上述格式的包文件链接的平面列表。

也可以通过 UV_FIND_LINKS 环境变量设置。

--fork-strategy fork-strategy

在跨 Python 版本和平台选择给定包的多个版本时要使用的策略。

默认情况下,uv 将优化为为每个支持的 Python 版本 (requires-python) 选择每个包的最新版本,同时最小化跨平台的选定版本数量。

fewest 下,uv 将最小化每个包的选定版本数量,优先选择与更广泛支持的 Python 版本或平台兼容的旧版本。

也可以通过 UV_FORK_STRATEGY 环境变量设置。

可选值

  • fewest:优化为为每个包选择最少数量的版本。如果旧版本与更广泛的支持 Python 版本或平台兼容,则可能优先选择旧版本
  • requires-python:优化为为每个支持的 Python 版本选择每个包的最新支持版本
--frozen

在不锁定项目的情况下显示 requirements [env: UV_FROZEN=]

如果缺少锁文件,uv 将以错误退出。

--group group

包含来自指定依赖组的依赖项。

可以多次提供。

--help, -h

显示此命令的简明帮助信息

--index index

除默认索引外,解析依赖项时要使用的 URL。

接受符合 PEP 503(简单存储库 API)的存储库,或以相同格式布局的本地目录。

通过此标志提供的所有索引的优先级都高于 --default-index(默认为 PyPI)指定的索引。当提供多个 --index 标志时,较早的值具有更高的优先级。

不支持将索引名称用作值。相对路径必须使用 Unix 上的 ./../,或 Windows 上的 .\\..\\./../ 与索引名称区分开来。

也可以通过 UV_INDEX 环境变量设置。

--index-strategy index-strategy

在针对多个索引 URL 进行解析时要使用的策略。

默认情况下,uv 将在给定包可用的第一个索引处停止,并将解析限制为该第一个索引中存在的那些包 (first-index)。这可以防止“依赖混淆”攻击,攻击者可以在该攻击中以相同的名称将恶意包上传到备用索引。

也可以通过 UV_INDEX_STRATEGY 环境变量设置。

可选值

  • first-index:仅使用第一个返回给定包名称匹配结果的索引中的结果
  • unsafe-first-match:搜索跨所有索引的每个包名称,在转到下一个索引之前耗尽第一个索引中的版本
  • unsafe-best-match:搜索跨所有索引的每个包名称,优先选择找到的“最佳”版本。如果包版本存在于多个索引中,则仅查看第一个索引的条目
--index-url, -i index-url

(已弃用:请改用 --default-index)Python 包索引的 URL(默认:https://pypi.ac.cn/simple)。

接受符合 PEP 503(简单存储库 API)的存储库,或以相同格式布局的本地目录。

此标志给出的索引优先级低于通过 --extra-index-url 标志指定的所有其他索引。

也可以通过 UV_INDEX_URL 环境变量设置。

--invert, --reverse

显示给定包的反向依赖项。此标志将反转树并显示依赖于给定包的包。

--keyring-provider keyring-provider

尝试使用 keyring 进行索引 URL 的身份验证。

目前,仅支持 --keyring-provider subprocess,它将 uv 配置为使用 keyring CLI 来处理身份验证。

默认为 disabled

也可以通过 UV_KEYRING_PROVIDER 环境变量设置。

可选值

  • disabled:不使用密钥环进行凭据查找
  • subprocess:使用 keyring 命令进行凭据查找

从全局缓存安装包时要使用的方法。

此选项仅在构建源码包时使用。

默认在 macOS 和 Linux 上为 clone(也称为写时复制),在 Windows 上为 hardlink

警告:不建议使用符号链接链接模式,因为它们会在缓存和目标环境之间创建紧密的耦合。例如,清除缓存 (uv cache clean) 将通过移除底层源文件来破坏所有已安装的包。请谨慎使用符号链接。

也可以通过 UV_LINK_MODE 环境变量设置。

可选值

  • clone:将包从源克隆(即写时复制)到目标
  • copy:将包从源复制到目标
  • hardlink:将包从源硬链接到目标
  • symlink:将包从源符号链接到目标
--locked

断言 uv.lock 将保持不变 [环境变量: UV_LOCKED=]

要求锁文件是最新的。如果锁文件缺失或需要更新,uv 将报错退出。

--managed-python

要求使用 uv 管理的 Python 版本 [环境变量: UV_MANAGED_PYTHON=]

默认情况下,uv 优先使用其管理的 Python 版本。但是,如果未安装 uv 管理的 Python,它将使用系统 Python 版本。此选项将禁用系统 Python 版本的调用。

--native-tls

是否从平台的原生存储中加载 TLS 证书 [环境变量: UV_NATIVE_TLS=]

默认情况下,uv 从绑定的 webpki-roots crate 中加载证书。webpki-roots 是一组来自 Mozilla 的可靠信任根,在 uv 中包含它们可提高可移植性和性能(特别是在 macOS 上)。

然而,在某些情况下,您可能希望使用平台的原生证书存储,特别是当您依赖于系统证书存储中包含的公司信任根(例如强制代理)时。

--no-binary

不安装预构建的 wheel。

给定的包将从源代码构建和安装。如果可用,解析器仍将使用预构建的 wheel 来提取包元数据。

也可以通过 UV_NO_BINARY 环境变量设置。

--no-binary-package no-binary-package

不为特定包安装预构建的 wheel

也可以通过 UV_NO_BINARY_PACKAGE 环境变量设置。

--no-build

不构建源代码分发包。

启用后,解析将不会运行任意 Python 代码。已构建的源代码分发包的缓存 wheel 将被重用,但需要构建分发包的操作将报错退出。

也可以通过 UV_NO_BUILD 环境变量设置。

--no-build-isolation

构建源代码分发包时禁用隔离。

假定 PEP 518 指定的构建依赖项已安装。

也可以通过 UV_NO_BUILD_ISOLATION 环境变量设置。

--no-build-isolation-package no-build-isolation-package

为特定包构建源代码分发包时禁用隔离。

假定包的 PEP 518 指定的构建依赖项已安装。

--no-build-package no-build-package

不为特定包构建源代码分发包

也可以通过 UV_NO_BUILD_PACKAGE 环境变量设置。

--no-cache, --no-cache-dir, -n

避免从缓存中读取或写入缓存,而是在操作期间使用临时目录

也可以通过 UV_NO_CACHE 环境变量设置。

--no-config

避免发现配置文件(pyproject.tomluv.toml)。

通常,会在当前目录、父目录或用户配置目录中发现配置文件。

也可以通过 UV_NO_CONFIG 环境变量设置。

--no-dedupe

不去除重复的依赖项。通常,当一个包已经显示了其依赖项后,再次出现时将不会重复显示,并会包含一个 (*) 来表示已显示过。此标志会导致重复显示这些依赖项。

--no-default-groups

忽略默认依赖组。

uv 默认包含 tool.uv.default-groups 中定义的组。此选项将禁用该选项,但是,仍可以使用 --group 包含特定组。

也可以通过 UV_NO_DEFAULT_GROUPS 环境变量设置。

--no-dev

禁用开发依赖组 [环境变量: UV_NO_DEV=]

此选项是 --no-group dev 的别名。参见 --no-default-groups 以禁用所有默认组。

--no-group no-group

禁用指定的依赖组。

此选项始终优先于默认组、--all-groups--group

可以多次提供。

也可以通过 UV_NO_GROUP 环境变量设置。

--no-index

忽略注册表索引(例如 PyPI),而是依赖直接 URL 依赖项和通过 --find-links 提供的依赖项

--no-managed-python

禁用对 uv 管理的 Python 版本的使用 [环境变量: UV_NO_MANAGED_PYTHON=]

相反,uv 将在系统上搜索合适的 Python 版本。

--no-progress

隐藏所有进度输出 [环境变量: UV_NO_PROGRESS=]

例如,微调器或进度条。

--no-python-downloads

禁用 Python 的自动下载。

--no-sources

解析依赖项时忽略 tool.uv.sources 表。用于根据标准兼容、可发布的包元数据进行锁定,而不是使用任何工作空间、Git、URL 或本地路径源

也可以通过 UV_NO_SOURCES 环境变量设置。

--no-sources-package no-sources-package

不要为指定包使用 tool.uv.sources 表中的源

也可以通过 UV_NO_SOURCES_PACKAGE 环境变量设置。

--offline

禁用网络访问 [环境变量: UV_OFFLINE=]

禁用时,uv 将仅使用本地缓存的数据和本地可用的文件。

--only-dev

仅包含开发依赖组。

项目及其依赖项将被省略。

此选项是 --only-group dev 的别名。暗示 --no-default-groups

--only-group only-group

仅包含来自指定依赖组的依赖项。

项目及其依赖项将被省略。

可以提供多次。暗示 --no-default-groups

--outdated

显示树中每个包的最新可用版本

--package package

仅显示指定的包

--prerelease prerelease

考虑预发布版本时要使用的策略。

默认情况下,uv 将接受 发布预发布版本的包,以及在声明的需求说明符中包含显式预发布标记的一方需求 (if-necessary-or-explicit)。

也可以通过 UV_PRERELEASE 环境变量设置。

可选值

  • disallow:不允许所有预发布版本
  • allow:允许所有预发布版本
  • if-necessary:如果包的所有版本都是预发布版本,则允许预发布版本
  • explicit:允许在版本需求中具有显式预发布标记的一方包的预发布版本
  • if-necessary-or-explicit:如果包的所有版本都是预发布版本,或者如果包在版本需求中具有显式预发布标记,则允许预发布版本
--project project

在给定目录中发现项目。

所有 pyproject.tomluv.toml.python-version 文件都将通过从项目根目录向上遍历目录树来发现,项目的虚拟环境 (.venv) 也是如此。

其他命令行参数(例如相对路径)将相对于当前工作目录进行解析。

参见 --directory 以完全更改工作目录。

当在 uv pip 接口中使用时,此设置无效。

也可以通过 UV_PROJECT 环境变量设置。

--prune prune

从依赖树的显示中修剪给定的包

--python, -p python

用于锁定和过滤的 Python 解释器。

默认情况下,树会根据 Python 解释器报告的平台进行过滤。使用 --universal 可显示所有平台的树,或者使用 --python-version--python-platform 覆盖部分标记。

请参阅 uv python 以了解有关 Python 发现和支持的请求格式的详细信息。

也可以通过 UV_PYTHON 环境变量设置。

--python-platform python-platform

过滤树时使用的平台。

例如,传递 --platform windows 可显示在 Windows 上安装时包含的依赖项。

表示为“目标三元组”,这是一个描述目标平台的字符串,包括 CPU、供应商和操作系统名称,例如 x86_64-unknown-linux-gnuaarch64-apple-darwin

可选值

  • windowsx86_64-pc-windows-msvc 的别名,Windows 的默认目标
  • linuxx86_64-unknown-linux-gnu 的别名,Linux 的默认目标
  • macosaarch64-apple-darwin 的别名,macOS 的默认目标
  • x86_64-pc-windows-msvc:64 位 x86 Windows 目标
  • aarch64-pc-windows-msvc:ARM64 Windows 目标
  • i686-pc-windows-msvc:32 位 x86 Windows 目标
  • x86_64-unknown-linux-gnu:x86 Linux 目标。等效于 x86_64-manylinux_2_28
  • aarch64-apple-darwin:ARM 架构 macOS 目标,如 Apple Silicon 设备上所见
  • x86_64-apple-darwin:x86 macOS 目标
  • aarch64-unknown-linux-gnu:ARM64 Linux 目标。等效于 aarch64-manylinux_2_28
  • aarch64-unknown-linux-musl:ARM64 Linux 目标
  • x86_64-unknown-linux-muslx86_64 Linux 目标
  • riscv64-unknown-linux:RISCV64 Linux 目标
  • x86_64-manylinux2014manylinux2014 平台的 x86_64 目标。等效于 x86_64-manylinux_2_17
  • x86_64-manylinux_2_17manylinux_2_17 平台的 x86_64 目标
  • x86_64-manylinux_2_28manylinux_2_28 平台的 x86_64 目标
  • x86_64-manylinux_2_31manylinux_2_31 平台的 x86_64 目标
  • x86_64-manylinux_2_32manylinux_2_32 平台的 x86_64 目标
  • x86_64-manylinux_2_33manylinux_2_33 平台的 x86_64 目标
  • x86_64-manylinux_2_34manylinux_2_34 平台的 x86_64 目标
  • x86_64-manylinux_2_35manylinux_2_35 平台的 x86_64 目标
  • x86_64-manylinux_2_36manylinux_2_36 平台的 x86_64 目标
  • x86_64-manylinux_2_37manylinux_2_37 平台的 x86_64 目标
  • x86_64-manylinux_2_38manylinux_2_38 平台的 x86_64 目标
  • x86_64-manylinux_2_39manylinux_2_39 平台的 x86_64 目标
  • x86_64-manylinux_2_40manylinux_2_40 平台的 x86_64 目标
  • aarch64-manylinux2014manylinux2014 平台的 ARM64 目标。等效于 aarch64-manylinux_2_17
  • aarch64-manylinux_2_17manylinux_2_17 平台的 ARM64 目标
  • aarch64-manylinux_2_28manylinux_2_28 平台的 ARM64 目标
  • aarch64-manylinux_2_31manylinux_2_31 平台的 ARM64 目标
  • aarch64-manylinux_2_32manylinux_2_32 平台的 ARM64 目标
  • aarch64-manylinux_2_33manylinux_2_33 平台的 ARM64 目标
  • aarch64-manylinux_2_34manylinux_2_34 平台的 ARM64 目标
  • aarch64-manylinux_2_35manylinux_2_35 平台的 ARM64 目标
  • aarch64-manylinux_2_36manylinux_2_36 平台的 ARM64 目标
  • aarch64-manylinux_2_37manylinux_2_37 平台的 ARM64 目标
  • aarch64-manylinux_2_38manylinux_2_38 平台的 ARM64 目标
  • aarch64-manylinux_2_39manylinux_2_39 平台的 ARM64 目标
  • aarch64-manylinux_2_40manylinux_2_40 平台的 ARM64 目标
  • aarch64-linux-android:ARM64 Android 目标
  • x86_64-linux-androidx86_64 Android 目标
  • wasm32-pyodide2024:使用 Pyodide 2024 平台的 wasm32 目标。旨在与 Python 3.12 一起使用
  • arm64-apple-ios:iOS 设备的 ARM64 目标
  • arm64-apple-ios-simulator:iOS 模拟器的 ARM64 目标
  • x86_64-apple-ios-simulator:iOS 模拟器的 x86_64 目标
--python-version python-version

过滤树时使用的 Python 版本。

例如,传递 --python-version 3.10 可显示在 Python 3.10 上安装时包含的依赖项。

默认为检测到的 Python 解释器版本。

--quiet, -q

使用安静输出。

重复此选项,例如 -qq,将启用静默模式,其中 uv 不会将任何输出写入标准输出。

--resolution resolution

在为给定包需求选择不同的兼容版本时要使用的策略。

默认情况下,uv 将使用每个包的最新兼容版本 (highest)。

也可以通过 UV_RESOLUTION 环境变量设置。

可选值

  • highest:解析每个包的最高兼容版本
  • lowest:解析每个包的最低兼容版本
  • lowest-direct:解析任何直接依赖项的最低兼容版本,以及任何传递依赖项的最高兼容版本
--script script

显示指定 PEP 723 Python 脚本的依赖树,而不是当前项目。

如果提供,uv 将根据脚本的内联元数据表(符合 PEP 723)解析依赖项。

--show-sizes

显示树中包的压缩 wheel 大小

--universal

显示平台无关的依赖树。

显示所有 Python 版本和平台的已解析包版本,而不是仅过滤与当前环境相关的版本。

每个包可能会显示多个版本。

--upgrade, -U

允许包升级,忽略任何现有输出文件中的固定版本。暗示 --refresh

--upgrade-package, -P upgrade-package

允许升级特定包,忽略任何现有输出文件中的固定版本。暗示 --refresh-package

--verbose, -v

使用详细输出。

您可以使用 RUST_LOG 环境变量配置细粒度日志记录。(https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html#directives

uv format

格式化项目中的 Python 代码。

使用 Ruff 格式化程序格式化 Python 代码。默认情况下,格式化项目中的所有 Python 文件。此命令的行为与在项目根目录下运行 ruff format 相同。

要检查文件是否已格式化而不修改它们,请使用 --check。要查看格式化更改的差异,请使用 --diff

可以在 -- 之后传递额外的参数给 Ruff。

用法

uv format [OPTIONS] [-- <EXTRA_ARGS>...]

参数

EXTRA_ARGS

传递给 Ruff 的额外参数。

例如,使用 uv format -- --line-length 100 设置行长度,或使用 uv format -- src/module/foo.py 格式化特定文件。

Options (选项)

--allow-insecure-host, --trusted-host allow-insecure-host

允许与主机建立不安全连接。

可以多次提供。

期望接收主机名(例如 localhost)、主机-端口对(例如 localhost:8080)或 URL(例如 https://)。

警告:此列表中的主机不会根据系统的证书存储进行验证。仅在具有受信任来源的安全网络中使用 --allow-insecure-host,因为它会绕过 SSL 验证,可能会使您面临 MITM 攻击。

也可以通过 UV_INSECURE_HOST 环境变量设置。

--cache-dir cache-dir

缓存目录的路径。

默认在 macOS 和 Linux 上为 $XDG_CACHE_HOME/uv$HOME/.cache/uv,在 Windows 上为 %LOCALAPPDATA%\uv\cache

要查看缓存目录的位置,请运行 uv cache dir

也可以通过 UV_CACHE_DIR 环境变量设置。

--check

检查文件是否已格式化,不应用更改

--color color-choice

控制输出中颜色的使用。

默认情况下,uv 在写入终端时会自动检测对颜色的支持。

可选值

  • auto:仅在输出到支持颜色的终端或 TTY 时启用彩色输出
  • always:无论检测到的环境如何,都启用彩色输出
  • never:禁用彩色输出
--config-file config-file

用于配置的 uv.toml 文件路径。

虽然 uv 配置可以包含在 pyproject.toml 文件中,但在这种上下文下是不允许的。

也可以通过 UV_CONFIG_FILE 环境变量设置。

--diff

显示格式化更改的差异,不应用它们。

意味着 --check

--directory directory

在运行命令之前切换到指定目录。

相对路径将以给定目录为基础进行解析。

参见 --project 仅更改项目根目录。

也可以通过 UV_WORKING_DIR 环境变量设置。

--exclude-newer exclude-newer

限制候选 Ruff 版本为在给定日期之前发布的版本。

接受 RFC 3339 的超集(例如,2006-12-02T02:07:43Z)或相同格式的本地日期(例如 2006-12-02),以及相对于“现在”的时间跨度(例如,-1 week)。

也可以通过 UV_EXCLUDE_NEWER 环境变量设置。

--help, -h

显示此命令的简明帮助信息

--managed-python

要求使用 uv 管理的 Python 版本 [环境变量: UV_MANAGED_PYTHON=]

默认情况下,uv 优先使用其管理的 Python 版本。但是,如果未安装 uv 管理的 Python,它将使用系统 Python 版本。此选项将禁用系统 Python 版本的调用。

--native-tls

是否从平台的原生存储中加载 TLS 证书 [环境变量: UV_NATIVE_TLS=]

默认情况下,uv 从绑定的 webpki-roots crate 中加载证书。webpki-roots 是一组来自 Mozilla 的可靠信任根,在 uv 中包含它们可提高可移植性和性能(特别是在 macOS 上)。

然而,在某些情况下,您可能希望使用平台的原生证书存储,特别是当您依赖于系统证书存储中包含的公司信任根(例如强制代理)时。

--no-cache, --no-cache-dir, -n

避免从缓存中读取或写入缓存,而是在操作期间使用临时目录

也可以通过 UV_NO_CACHE 环境变量设置。

--no-config

避免发现配置文件(pyproject.tomluv.toml)。

通常,会在当前目录、父目录或用户配置目录中发现配置文件。

也可以通过 UV_NO_CONFIG 环境变量设置。

--no-managed-python

禁用对 uv 管理的 Python 版本的使用 [环境变量: UV_NO_MANAGED_PYTHON=]

相反,uv 将在系统上搜索合适的 Python 版本。

--no-progress

隐藏所有进度输出 [环境变量: UV_NO_PROGRESS=]

例如,微调器或进度条。

--no-project

避免发现项目或工作区。

不在当前项目的上下文中运行格式化程序,而是在当前目录的上下文中运行。当当前目录不是项目时,这很有用。

--no-python-downloads

禁用 Python 的自动下载。

--offline

禁用网络访问 [环境变量: UV_OFFLINE=]

禁用时,uv 将仅使用本地缓存的数据和本地可用的文件。

--project project

在给定目录中发现项目。

所有 pyproject.tomluv.toml.python-version 文件都将通过从项目根目录向上遍历目录树来发现,项目的虚拟环境 (.venv) 也是如此。

其他命令行参数(例如相对路径)将相对于当前工作目录进行解析。

参见 --directory 以完全更改工作目录。

当在 uv pip 接口中使用时,此设置无效。

也可以通过 UV_PROJECT 环境变量设置。

--quiet, -q

使用安静输出。

重复此选项,例如 -qq,将启用静默模式,其中 uv 不会将任何输出写入标准输出。

--verbose, -v

使用详细输出。

您可以使用 RUST_LOG 环境变量配置细粒度日志记录。(https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html#directives

--version version

用于格式化的 Ruff 版本。

接受版本号(例如 0.8.2,将被视为精确版本)、版本说明符(例如 >=0.8.0)或 latest(使用最新的可用版本)。

默认情况下,将使用受约束的 Ruff 版本范围(例如 >=0.15,<0.16)。

uv tool

运行和安装由 Python 包提供的命令

用法

uv tool [OPTIONS] <COMMAND>

命令

uv tool run

运行 Python 包提供的命令

uv tool install

安装 Python 包提供的命令

uv tool upgrade

升级已安装的工具

uv tool list

列出已安装的工具

uv tool uninstall

卸载工具

uv tool update-shell

确保工具可执行文件目录在 PATH

uv tool dir

显示 uv 工具目录的路径

uv tool run

运行 Python 包提供的命令。

默认情况下,假定要安装的包与命令名称匹配。

命令名称可以包含格式为 <package>@<version> 的确切版本,例如 uv tool run [email protected]。如果需要更复杂的版本说明,或者如果命令由不同的包提供,请使用 --from

uvx 可用于调用 Python,例如 uvx pythonuvx python@<version>。将在隔离的虚拟环境中启动 Python 解释器。

如果该工具之前已通过 uv tool install 安装,除非请求了特定版本或使用了 --isolated 标志,否则将使用已安装的版本。

uvxuv tool run 的便捷别名,其行为相同。

如果没有提供命令,将显示已安装的工具。

包被安装到 uv 缓存目录中的临时虚拟环境中。

用法

uv tool run [OPTIONS] [COMMAND]

Options (选项)

--allow-insecure-host, --trusted-host allow-insecure-host

允许与主机建立不安全连接。

可以多次提供。

期望接收主机名(例如 localhost)、主机-端口对(例如 localhost:8080)或 URL(例如 https://)。

警告:此列表中的主机不会根据系统的证书存储进行验证。仅在具有受信任来源的安全网络中使用 --allow-insecure-host,因为它会绕过 SSL 验证,可能会使您面临 MITM 攻击。

也可以通过 UV_INSECURE_HOST 环境变量设置。

--build-constraints, --build-constraint, -b build-constraints

构建源码包时,使用给定的 requirements 文件约束构建依赖项。

约束文件是类似于 requirements.txt 的文件,它们仅控制已安装需求的版本。但是,在约束文件中包含包不会触发该包的安装。

也可以通过 UV_BUILD_CONSTRAINT 环境变量设置。

--cache-dir cache-dir

缓存目录的路径。

默认在 macOS 和 Linux 上为 $XDG_CACHE_HOME/uv$HOME/.cache/uv,在 Windows 上为 %LOCALAPPDATA%\uv\cache

要查看缓存目录的位置,请运行 uv cache dir

也可以通过 UV_CACHE_DIR 环境变量设置。

--color color-choice

控制输出中颜色的使用。

默认情况下,uv 在写入终端时会自动检测对颜色的支持。

可选值

  • auto:仅在输出到支持颜色的终端或 TTY 时启用彩色输出
  • always:无论检测到的环境如何,都启用彩色输出
  • never:禁用彩色输出
--compile-bytecode, --compile

安装后将 Python 文件编译为字节码。

默认情况下,uv 不会将 Python (.py) 文件编译为字节码 (__pycache__/*.pyc);相反,编译是在模块首次导入时延迟执行的。对于启动时间至关重要的用例(例如 CLI 应用程序和 Docker 容器),可以启用此选项,以牺牲较长的安装时间换取更快的启动时间。

启用后,uv 将处理整个 site-packages 目录(包括当前操作未修改的包)以保持一致性。像 pip 一样,它也会忽略错误。

也可以通过 UV_COMPILE_BYTECODE 环境变量设置。

--config-file config-file

用于配置的 uv.toml 文件路径。

虽然 uv 配置可以包含在 pyproject.toml 文件中,但在这种上下文下是不允许的。

也可以通过 UV_CONFIG_FILE 环境变量设置。

--config-setting, --config-settings, -C config-setting

传递给 PEP 517 构建后端的设置,指定为 KEY=VALUE

--config-settings-package, --config-settings-package config-settings-package

传递给特定包的 PEP 517 构建后端的设置,指定为 PACKAGE:KEY=VALUE

--constraints, --constraint, -c constraints

使用给定的需求文件约束版本。

约束文件是类似于 requirements.txt 的文件,它们仅控制已安装需求的版本。但是,在约束文件中包含包不会触发该包的安装。

这等同于 pip 的 --constraint 选项。

也可以通过 UV_CONSTRAINT 环境变量设置。

--default-index default-index

默认包索引的 URL(默认:https://pypi.ac.cn/simple)。

接受符合 PEP 503(简单存储库 API)的存储库,或以相同格式布局的本地目录。

此标志给出的索引优先级低于通过 --index 标志指定的所有其他索引。

也可以通过 UV_DEFAULT_INDEX 环境变量设置。

--directory directory

在运行命令之前切换到指定目录。

相对路径将以给定目录为基础进行解析。

参见 --project 仅更改项目根目录。

也可以通过 UV_WORKING_DIR 环境变量设置。

--env-file env-file

.env 文件加载环境变量。

可以多次提供,后续文件会覆盖之前文件中定义的变量值。

也可以通过 UV_ENV_FILE 环境变量设置。

--exclude-newer exclude-newer

将候选包限制为给定日期之前上传的包。

接受 RFC 3339 时间戳(例如 2006-12-02T02:07:43Z)、相同格式的本地日期(例如 2006-12-02,基于系统配置的时区解析)、“友好”持续时间(例如 24 hours1 week30 days)或 ISO 8601 持续时间(例如 PT24HP7DP30D)。

持续时间不尊重本地时区的语义,始终假定一天为 24 小时(例如忽略夏令时转换)并解析为固定的秒数。不允许使用月和年等日历单位。

也可以通过 UV_EXCLUDE_NEWER 环境变量设置。

--exclude-newer-package exclude-newer-package

将特定包的候选包限制为给定日期之前上传的包。

接受 PACKAGE=DATE 格式的包-日期对,其中 DATE 是 RFC 3339 时间戳(例如 2006-12-02T02:07:43Z)、相同格式的本地日期(例如 2006-12-02,基于系统配置的时区解析)、“友好”持续时间(例如 24 hours1 week30 days)或 ISO 8601 持续时间(例如 PT24HP7DP30D)。

持续时间不尊重本地时区的语义,始终假定一天为 24 小时(例如忽略夏令时转换)并解析为固定的秒数。不允许使用月和年等日历单位。

可以为不同的包多次提供。

--extra-index-url extra-index-url

(已弃用:请改用 --index)除 --index-url 之外要使用的额外包索引 URL。

接受符合 PEP 503(简单存储库 API)的存储库,或以相同格式布局的本地目录。

通过此标志提供的所有索引的优先级都高于 --index-url(默认为 PyPI)指定的索引。当提供多个 --extra-index-url 标志时,较早的值具有更高的优先级。

也可以通过 UV_EXTRA_INDEX_URL 环境变量设置。

除在注册表索引中找到的位置外,还要搜索候选分发包的位置。

如果是路径,则目标必须是包含顶层 wheel 文件 (.whl) 或源代码分发包(例如 .tar.gz.zip)的目录。

如果是 URL,页面必须包含符合上述格式的包文件链接的平面列表。

也可以通过 UV_FIND_LINKS 环境变量设置。

--fork-strategy fork-strategy

在跨 Python 版本和平台选择给定包的多个版本时要使用的策略。

默认情况下,uv 将优化为为每个支持的 Python 版本 (requires-python) 选择每个包的最新版本,同时最小化跨平台的选定版本数量。

fewest 下,uv 将最小化每个包的选定版本数量,优先选择与更广泛支持的 Python 版本或平台兼容的旧版本。

也可以通过 UV_FORK_STRATEGY 环境变量设置。

可选值

  • fewest:优化为为每个包选择最少数量的版本。如果旧版本与更广泛的支持 Python 版本或平台兼容,则可能优先选择旧版本
  • requires-python:优化为为每个支持的 Python 版本选择每个包的最新支持版本
--from from

使用给定的包提供命令。

默认情况下,假定包名称与命令名称匹配。

--help, -h

显示此命令的简明帮助信息

--index index

除默认索引外,解析依赖项时要使用的 URL。

接受符合 PEP 503(简单存储库 API)的存储库,或以相同格式布局的本地目录。

通过此标志提供的所有索引的优先级都高于 --default-index(默认为 PyPI)指定的索引。当提供多个 --index 标志时,较早的值具有更高的优先级。

不支持将索引名称用作值。相对路径必须使用 Unix 上的 ./../,或 Windows 上的 .\\..\\./../ 与索引名称区分开来。

也可以通过 UV_INDEX 环境变量设置。

--index-strategy index-strategy

在针对多个索引 URL 进行解析时要使用的策略。

默认情况下,uv 将在给定包可用的第一个索引处停止,并将解析限制为该第一个索引中存在的那些包 (first-index)。这可以防止“依赖混淆”攻击,攻击者可以在该攻击中以相同的名称将恶意包上传到备用索引。

也可以通过 UV_INDEX_STRATEGY 环境变量设置。

可选值

  • first-index:仅使用第一个返回给定包名称匹配结果的索引中的结果
  • unsafe-first-match:搜索跨所有索引的每个包名称,在转到下一个索引之前耗尽第一个索引中的版本
  • unsafe-best-match:搜索跨所有索引的每个包名称,优先选择找到的“最佳”版本。如果包版本存在于多个索引中,则仅查看第一个索引的条目
--index-url, -i index-url

(已弃用:请改用 --default-index)Python 包索引的 URL(默认:https://pypi.ac.cn/simple)。

接受符合 PEP 503(简单存储库 API)的存储库,或以相同格式布局的本地目录。

此标志给出的索引优先级低于通过 --extra-index-url 标志指定的所有其他索引。

也可以通过 UV_INDEX_URL 环境变量设置。

--isolated

在隔离的虚拟环境中运行工具,忽略任何已安装的工具 [env: UV_ISOLATED=]

--keyring-provider keyring-provider

尝试使用 keyring 进行索引 URL 的身份验证。

目前,仅支持 --keyring-provider subprocess,它将 uv 配置为使用 keyring CLI 来处理身份验证。

默认为 disabled

也可以通过 UV_KEYRING_PROVIDER 环境变量设置。

可选值

  • disabled:不使用密钥环进行凭据查找
  • subprocess:使用 keyring 命令进行凭据查找
--lfs

从 Git 添加依赖项时是否使用 Git LFS

从全局缓存安装包时要使用的方法。

默认在 macOS 和 Linux 上为 clone(也称为写时复制),在 Windows 上为 hardlink

警告:不建议使用符号链接链接模式,因为它们会在缓存和目标环境之间创建紧密的耦合。例如,清除缓存 (uv cache clean) 将通过移除底层源文件来破坏所有已安装的包。请谨慎使用符号链接。

也可以通过 UV_LINK_MODE 环境变量设置。

可选值

  • clone:将包从源克隆(即写时复制)到目标
  • copy:将包从源复制到目标
  • hardlink:将包从源硬链接到目标
  • symlink:将包从源符号链接到目标
--managed-python

要求使用 uv 管理的 Python 版本 [环境变量: UV_MANAGED_PYTHON=]

默认情况下,uv 优先使用其管理的 Python 版本。但是,如果未安装 uv 管理的 Python,它将使用系统 Python 版本。此选项将禁用系统 Python 版本的调用。

--native-tls

是否从平台的原生存储中加载 TLS 证书 [环境变量: UV_NATIVE_TLS=]

默认情况下,uv 从绑定的 webpki-roots crate 中加载证书。webpki-roots 是一组来自 Mozilla 的可靠信任根,在 uv 中包含它们可提高可移植性和性能(特别是在 macOS 上)。

然而,在某些情况下,您可能希望使用平台的原生证书存储,特别是当您依赖于系统证书存储中包含的公司信任根(例如强制代理)时。

--no-binary

不安装预构建的 wheel。

给定的包将从源代码构建和安装。如果可用,解析器仍将使用预构建的 wheel 来提取包元数据。

也可以通过 UV_NO_BINARY 环境变量设置。

--no-binary-package no-binary-package

不为特定包安装预构建的 wheel

也可以通过 UV_NO_BINARY_PACKAGE 环境变量设置。

--no-build

不构建源代码分发包。

启用后,解析将不会运行任意 Python 代码。已构建的源代码分发包的缓存 wheel 将被重用,但需要构建分发包的操作将报错退出。

也可以通过 UV_NO_BUILD 环境变量设置。

--no-build-isolation

构建源代码分发包时禁用隔离。

假定 PEP 518 指定的构建依赖项已安装。

也可以通过 UV_NO_BUILD_ISOLATION 环境变量设置。

--no-build-isolation-package no-build-isolation-package

为特定包构建源代码分发包时禁用隔离。

假定包的 PEP 518 指定的构建依赖项已安装。

--no-build-package no-build-package

不为特定包构建源代码分发包

也可以通过 UV_NO_BUILD_PACKAGE 环境变量设置。

--no-cache, --no-cache-dir, -n

避免从缓存中读取或写入缓存,而是在操作期间使用临时目录

也可以通过 UV_NO_CACHE 环境变量设置。

--no-config

避免发现配置文件(pyproject.tomluv.toml)。

通常,会在当前目录、父目录或用户配置目录中发现配置文件。

也可以通过 UV_NO_CONFIG 环境变量设置。

--no-env-file

避免从 .env 文件读取环境变量 [环境变量: UV_NO_ENV_FILE=]

--no-index

忽略注册表索引(例如 PyPI),而是依赖直接 URL 依赖项和通过 --find-links 提供的依赖项

--no-managed-python

禁用对 uv 管理的 Python 版本的使用 [环境变量: UV_NO_MANAGED_PYTHON=]

相反,uv 将在系统上搜索合适的 Python 版本。

--no-progress

隐藏所有进度输出 [环境变量: UV_NO_PROGRESS=]

例如,微调器或进度条。

--no-python-downloads

禁用 Python 的自动下载。

--no-sources

解析依赖项时忽略 tool.uv.sources 表。用于根据标准兼容、可发布的包元数据进行锁定,而不是使用任何工作空间、Git、URL 或本地路径源

也可以通过 UV_NO_SOURCES 环境变量设置。

--no-sources-package no-sources-package

不要为指定包使用 tool.uv.sources 表中的源

也可以通过 UV_NO_SOURCES_PACKAGE 环境变量设置。

--offline

禁用网络访问 [环境变量: UV_OFFLINE=]

禁用时,uv 将仅使用本地缓存的数据和本地可用的文件。

--overrides, --override overrides

使用给定的 requirements 文件覆盖版本。

覆盖文件是类似于 requirements.txt 的文件,它们强制安装特定版本的需求,无论任何组成包声明了什么需求,也无论这是否会被视为无效解析。

约束是加性的,即它们与组成包的需求相结合;而覆盖是绝对的,即它们完全替换了组成包的需求。

也可以通过 UV_OVERRIDE 环境变量设置。

--prerelease prerelease

考虑预发布版本时要使用的策略。

默认情况下,uv 将接受 发布预发布版本的包,以及在声明的需求说明符中包含显式预发布标记的一方需求 (if-necessary-or-explicit)。

也可以通过 UV_PRERELEASE 环境变量设置。

可选值

  • disallow:不允许所有预发布版本
  • allow:允许所有预发布版本
  • if-necessary:如果包的所有版本都是预发布版本,则允许预发布版本
  • explicit:允许在版本需求中具有显式预发布标记的一方包的预发布版本
  • if-necessary-or-explicit:如果包的所有版本都是预发布版本,或者如果包在版本需求中具有显式预发布标记,则允许预发布版本
--project project

在给定目录中发现项目。

所有 pyproject.tomluv.toml.python-version 文件都将通过从项目根目录向上遍历目录树来发现,项目的虚拟环境 (.venv) 也是如此。

其他命令行参数(例如相对路径)将相对于当前工作目录进行解析。

参见 --directory 以完全更改工作目录。

当在 uv pip 接口中使用时,此设置无效。

也可以通过 UV_PROJECT 环境变量设置。

--python, -p python

用于构建运行环境的 Python 解释器。

请参阅 uv python 以了解有关 Python 发现和支持的请求格式的详细信息。

也可以通过 UV_PYTHON 环境变量设置。

--python-platform python-platform

应该为其安装需求的目标平台。

表示为“目标三元组”,这是一个描述目标平台的字符串,包括 CPU、供应商和操作系统名称,例如 x86_64-unknown-linux-gnuaarch64-apple-darwin

当针对 macOS (Darwin) 时,默认最小版本为 13.0。使用 MACOSX_DEPLOYMENT_TARGET 指定不同的最小版本,例如 14.0

当针对 iOS 时,默认最小版本为 13.0。使用 IPHONEOS_DEPLOYMENT_TARGET 指定不同的最小版本,例如 14.0

当针对 Android 时,默认最小 Android API 级别为 24。使用 ANDROID_API_LEVEL 指定不同的最小版本,例如 26

警告:指定时,uv 将选择与 目标 平台兼容的 wheel;因此,安装的分发包可能与 当前 平台不兼容。相反,从源代码构建的任何分发包都可能与 目标 平台不兼容,因为它们是为 当前 平台构建的。--python-platform 选项旨在用于高级用例。

可选值

  • windowsx86_64-pc-windows-msvc 的别名,Windows 的默认目标
  • linuxx86_64-unknown-linux-gnu 的别名,Linux 的默认目标
  • macosaarch64-apple-darwin 的别名,macOS 的默认目标
  • x86_64-pc-windows-msvc:64 位 x86 Windows 目标
  • aarch64-pc-windows-msvc:ARM64 Windows 目标
  • i686-pc-windows-msvc:32 位 x86 Windows 目标
  • x86_64-unknown-linux-gnu:x86 Linux 目标。等效于 x86_64-manylinux_2_28
  • aarch64-apple-darwin:ARM 架构 macOS 目标,如 Apple Silicon 设备上所见
  • x86_64-apple-darwin:x86 macOS 目标
  • aarch64-unknown-linux-gnu:ARM64 Linux 目标。等效于 aarch64-manylinux_2_28
  • aarch64-unknown-linux-musl:ARM64 Linux 目标
  • x86_64-unknown-linux-muslx86_64 Linux 目标
  • riscv64-unknown-linux:RISCV64 Linux 目标
  • x86_64-manylinux2014manylinux2014 平台的 x86_64 目标。等效于 x86_64-manylinux_2_17
  • x86_64-manylinux_2_17manylinux_2_17 平台的 x86_64 目标
  • x86_64-manylinux_2_28manylinux_2_28 平台的 x86_64 目标
  • x86_64-manylinux_2_31manylinux_2_31 平台的 x86_64 目标
  • x86_64-manylinux_2_32manylinux_2_32 平台的 x86_64 目标
  • x86_64-manylinux_2_33manylinux_2_33 平台的 x86_64 目标
  • x86_64-manylinux_2_34manylinux_2_34 平台的 x86_64 目标
  • x86_64-manylinux_2_35manylinux_2_35 平台的 x86_64 目标
  • x86_64-manylinux_2_36manylinux_2_36 平台的 x86_64 目标
  • x86_64-manylinux_2_37manylinux_2_37 平台的 x86_64 目标
  • x86_64-manylinux_2_38manylinux_2_38 平台的 x86_64 目标
  • x86_64-manylinux_2_39manylinux_2_39 平台的 x86_64 目标
  • x86_64-manylinux_2_40manylinux_2_40 平台的 x86_64 目标
  • aarch64-manylinux2014manylinux2014 平台的 ARM64 目标。等效于 aarch64-manylinux_2_17
  • aarch64-manylinux_2_17manylinux_2_17 平台的 ARM64 目标
  • aarch64-manylinux_2_28manylinux_2_28 平台的 ARM64 目标
  • aarch64-manylinux_2_31manylinux_2_31 平台的 ARM64 目标
  • aarch64-manylinux_2_32manylinux_2_32 平台的 ARM64 目标
  • aarch64-manylinux_2_33manylinux_2_33 平台的 ARM64 目标
  • aarch64-manylinux_2_34manylinux_2_34 平台的 ARM64 目标
  • aarch64-manylinux_2_35manylinux_2_35 平台的 ARM64 目标
  • aarch64-manylinux_2_36manylinux_2_36 平台的 ARM64 目标
  • aarch64-manylinux_2_37manylinux_2_37 平台的 ARM64 目标
  • aarch64-manylinux_2_38manylinux_2_38 平台的 ARM64 目标
  • aarch64-manylinux_2_39manylinux_2_39 平台的 ARM64 目标
  • aarch64-manylinux_2_40manylinux_2_40 平台的 ARM64 目标
  • aarch64-linux-android:ARM64 Android 目标
  • x86_64-linux-androidx86_64 Android 目标
  • wasm32-pyodide2024:使用 Pyodide 2024 平台的 wasm32 目标。旨在与 Python 3.12 一起使用
  • arm64-apple-ios:iOS 设备的 ARM64 目标
  • arm64-apple-ios-simulator:iOS 模拟器的 ARM64 目标
  • x86_64-apple-ios-simulator:iOS 模拟器的 x86_64 目标
--quiet, -q

使用安静输出。

重复此选项,例如 -qq,将启用静默模式,其中 uv 不会将任何输出写入标准输出。

--refresh

刷新所有缓存数据

--refresh-package refresh-package

刷新特定包的缓存数据

--reinstall, --force-reinstall

重新安装所有包,无论它们是否已安装。暗示 --refresh

--reinstall-package reinstall-package

重新安装特定包,无论它是否已安装。暗示 --refresh-package

--resolution resolution

在为给定包需求选择不同的兼容版本时要使用的策略。

默认情况下,uv 将使用每个包的最新兼容版本 (highest)。

也可以通过 UV_RESOLUTION 环境变量设置。

可选值

  • highest:解析每个包的最高兼容版本
  • lowest:解析每个包的最低兼容版本
  • lowest-direct:解析任何直接依赖项的最低兼容版本,以及任何传递依赖项的最高兼容版本
--torch-backend torch-backend

获取 PyTorch 生态系统中的包时使用的后端(例如 cpucu126auto

设置时,uv 将忽略 PyTorch 生态系统中包的已配置索引 URL,并将改用定义的后端。

例如,当设置为 cpu 时,uv 将使用仅限 CPU 的 PyTorch 索引;当设置为 cu126 时,uv 将使用适用于 CUDA 12.6 的 PyTorch 索引。

auto 模式将尝试根据当前安装的 CUDA 驱动程序检测适当的 PyTorch 索引。

此选项处于预览阶段,可能在任何未来版本中更改。

也可以通过 UV_TORCH_BACKEND 环境变量设置。

可选值

  • auto: 根据操作系统和 CUDA 驱动版本选择适当的 PyTorch 索引
  • cpu: 使用仅限 CPU 的 PyTorch 索引
  • cu130: 使用适用于 CUDA 13.0 的 PyTorch 索引
  • cu129: 使用适用于 CUDA 12.9 的 PyTorch 索引
  • cu128: 使用适用于 CUDA 12.8 的 PyTorch 索引
  • cu126: 使用适用于 CUDA 12.6 的 PyTorch 索引
  • cu125: 使用适用于 CUDA 12.5 的 PyTorch 索引
  • cu124: 使用适用于 CUDA 12.4 的 PyTorch 索引
  • cu123: 使用适用于 CUDA 12.3 的 PyTorch 索引
  • cu122: 使用适用于 CUDA 12.2 的 PyTorch 索引
  • cu121: 使用适用于 CUDA 12.1 的 PyTorch 索引
  • cu120: 使用适用于 CUDA 12.0 的 PyTorch 索引
  • cu118: 使用适用于 CUDA 11.8 的 PyTorch 索引
  • cu117: 使用适用于 CUDA 11.7 的 PyTorch 索引
  • cu116: 使用适用于 CUDA 11.6 的 PyTorch 索引
  • cu115: 使用适用于 CUDA 11.5 的 PyTorch 索引
  • cu114: 使用适用于 CUDA 11.4 的 PyTorch 索引
  • cu113: 使用适用于 CUDA 11.3 的 PyTorch 索引
  • cu112: 使用适用于 CUDA 11.2 的 PyTorch 索引
  • cu111: 使用适用于 CUDA 11.1 的 PyTorch 索引
  • cu110: 使用适用于 CUDA 11.0 的 PyTorch 索引
  • cu102: 使用适用于 CUDA 10.2 的 PyTorch 索引
  • cu101: 使用适用于 CUDA 10.1 的 PyTorch 索引
  • cu100: 使用适用于 CUDA 10.0 的 PyTorch 索引
  • cu92: 使用适用于 CUDA 9.2 的 PyTorch 索引
  • cu91: 使用适用于 CUDA 9.1 的 PyTorch 索引
  • cu90: 使用适用于 CUDA 9.0 的 PyTorch 索引
  • cu80: 使用适用于 CUDA 8.0 的 PyTorch 索引
  • rocm7.1: 使用适用于 ROCm 7.1 的 PyTorch 索引
  • rocm7.0: 使用适用于 ROCm 7.0 的 PyTorch 索引
  • rocm6.4: 使用适用于 ROCm 6.4 的 PyTorch 索引
  • rocm6.3: 使用适用于 ROCm 6.3 的 PyTorch 索引
  • rocm6.2.4: 使用适用于 ROCm 6.2.4 的 PyTorch 索引
  • rocm6.2: 使用适用于 ROCm 6.2 的 PyTorch 索引
  • rocm6.1: 使用适用于 ROCm 6.1 的 PyTorch 索引
  • rocm6.0: 使用适用于 ROCm 6.0 的 PyTorch 索引
  • rocm5.7: 使用适用于 ROCm 5.7 的 PyTorch 索引
  • rocm5.6: 使用适用于 ROCm 5.6 的 PyTorch 索引
  • rocm5.5: 使用适用于 ROCm 5.5 的 PyTorch 索引
  • rocm5.4.2: 使用适用于 ROCm 5.4.2 的 PyTorch 索引
  • rocm5.4: 使用适用于 ROCm 5.4 的 PyTorch 索引
  • rocm5.3: 使用适用于 ROCm 5.3 的 PyTorch 索引
  • rocm5.2: 使用适用于 ROCm 5.2 的 PyTorch 索引
  • rocm5.1.1: 使用适用于 ROCm 5.1.1 的 PyTorch 索引
  • rocm4.2: 使用适用于 ROCm 4.2 的 PyTorch 索引
  • rocm4.1: 使用适用于 ROCm 4.1 的 PyTorch 索引
  • rocm4.0.1: 使用适用于 ROCm 4.0.1 的 PyTorch 索引
  • xpu: 使用适用于 Intel XPU 的 PyTorch 索引
--upgrade, -U

允许包升级,忽略任何现有输出文件中的固定版本。暗示 --refresh

--upgrade-package, -P upgrade-package

允许升级特定包,忽略任何现有输出文件中的固定版本。暗示 --refresh-package

--verbose, -v

使用详细输出。

您可以使用 RUST_LOG 环境变量配置细粒度日志记录。(https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html#directives

--with, -w with

在安装给定包的情况下运行

--with-editable with-editable

在以可编辑模式安装给定包的情况下运行

当在项目中使用时,这些依赖项将叠加在 uv 工具的环境之上的一个单独的、临时的环境中。这些依赖项被允许与指定的依赖项冲突。

--with-requirements with-requirements

在使用给定文件中列出的包的情况下运行。

支持以下格式:requirements.txt、具有内联元数据的 .py 文件和 pylock.toml

uv tool install

安装 Python 包提供的命令。

包被安装到 uv 工具目录中的一个隔离虚拟环境中。可执行文件被链接到工具可执行文件目录中,该目录是根据 XDG 标准确定的,可以通过 uv tool dir --bin 检索。

如果该工具之前已安装,现有工具通常会被替换。

用法

uv tool install [OPTIONS] <PACKAGE>

参数

PACKAGE

要从中安装命令的包

Options (选项)

--allow-insecure-host, --trusted-host allow-insecure-host

允许与主机建立不安全连接。

可以多次提供。

期望接收主机名(例如 localhost)、主机-端口对(例如 localhost:8080)或 URL(例如 https://)。

警告:此列表中的主机不会根据系统的证书存储进行验证。仅在具有受信任来源的安全网络中使用 --allow-insecure-host,因为它会绕过 SSL 验证,可能会使您面临 MITM 攻击。

也可以通过 UV_INSECURE_HOST 环境变量设置。

--build-constraints, --build-constraint, -b build-constraints

构建源码包时,使用给定的 requirements 文件约束构建依赖项。

约束文件是类似于 requirements.txt 的文件,它们仅控制已安装需求的版本。但是,在约束文件中包含包不会触发该包的安装。

也可以通过 UV_BUILD_CONSTRAINT 环境变量设置。

--cache-dir cache-dir

缓存目录的路径。

默认在 macOS 和 Linux 上为 $XDG_CACHE_HOME/uv$HOME/.cache/uv,在 Windows 上为 %LOCALAPPDATA%\uv\cache

要查看缓存目录的位置,请运行 uv cache dir

也可以通过 UV_CACHE_DIR 环境变量设置。

--color color-choice

控制输出中颜色的使用。

默认情况下,uv 在写入终端时会自动检测对颜色的支持。

可选值

  • auto:仅在输出到支持颜色的终端或 TTY 时启用彩色输出
  • always:无论检测到的环境如何,都启用彩色输出
  • never:禁用彩色输出
--compile-bytecode, --compile

安装后将 Python 文件编译为字节码。

默认情况下,uv 不会将 Python (.py) 文件编译为字节码 (__pycache__/*.pyc);相反,编译是在模块首次导入时延迟执行的。对于启动时间至关重要的用例(例如 CLI 应用程序和 Docker 容器),可以启用此选项,以牺牲较长的安装时间换取更快的启动时间。

启用后,uv 将处理整个 site-packages 目录(包括当前操作未修改的包)以保持一致性。像 pip 一样,它也会忽略错误。

也可以通过 UV_COMPILE_BYTECODE 环境变量设置。

--config-file config-file

用于配置的 uv.toml 文件路径。

虽然 uv 配置可以包含在 pyproject.toml 文件中,但在这种上下文下是不允许的。

也可以通过 UV_CONFIG_FILE 环境变量设置。

--config-setting, --config-settings, -C config-setting

传递给 PEP 517 构建后端的设置,指定为 KEY=VALUE

--config-settings-package, --config-settings-package config-settings-package

传递给特定包的 PEP 517 构建后端的设置,指定为 PACKAGE:KEY=VALUE

--constraints, --constraint, -c constraints

使用给定的需求文件约束版本。

约束文件是类似于 requirements.txt 的文件,它们仅控制已安装需求的版本。但是,在约束文件中包含包不会触发该包的安装。

这等同于 pip 的 --constraint 选项。

也可以通过 UV_CONSTRAINT 环境变量设置。

--default-index default-index

默认包索引的 URL(默认:https://pypi.ac.cn/simple)。

接受符合 PEP 503(简单存储库 API)的存储库,或以相同格式布局的本地目录。

此标志给出的索引优先级低于通过 --index 标志指定的所有其他索引。

也可以通过 UV_DEFAULT_INDEX 环境变量设置。

--directory directory

在运行命令之前切换到指定目录。

相对路径将以给定目录为基础进行解析。

参见 --project 仅更改项目根目录。

也可以通过 UV_WORKING_DIR 环境变量设置。

--editable, -e

以可编辑模式安装目标包,这样包源目录中的更改无需重新安装即可反映出来

--exclude-newer exclude-newer

将候选包限制为给定日期之前上传的包。

接受 RFC 3339 时间戳(例如 2006-12-02T02:07:43Z)、相同格式的本地日期(例如 2006-12-02,基于系统配置的时区解析)、“友好”持续时间(例如 24 hours1 week30 days)或 ISO 8601 持续时间(例如 PT24HP7DP30D)。

持续时间不尊重本地时区的语义,始终假定一天为 24 小时(例如忽略夏令时转换)并解析为固定的秒数。不允许使用月和年等日历单位。

也可以通过 UV_EXCLUDE_NEWER 环境变量设置。

--exclude-newer-package exclude-newer-package

将特定包的候选包限制为给定日期之前上传的包。

接受 PACKAGE=DATE 格式的包-日期对,其中 DATE 是 RFC 3339 时间戳(例如 2006-12-02T02:07:43Z)、相同格式的本地日期(例如 2006-12-02,基于系统配置的时区解析)、“友好”持续时间(例如 24 hours1 week30 days)或 ISO 8601 持续时间(例如 PT24HP7DP30D)。

持续时间不尊重本地时区的语义,始终假定一天为 24 小时(例如忽略夏令时转换)并解析为固定的秒数。不允许使用月和年等日历单位。

可以为不同的包多次提供。

--excludes, --exclude excludes

使用给定的 requirements 文件从解析中排除包。

排除文件是类似于 requirements.txt 的文件,指定了要从解析中排除的包。当一个包被排除时,它将完全从依赖列表中省略,并且在解析阶段其自身依赖项将被忽略。排除是无条件的,因为需求说明符和标记会被忽略;提供文件中列出的任何包都将从所有解析的环境中省略。

也可以通过 UV_EXCLUDE 环境变量设置。

--extra-index-url extra-index-url

(已弃用:请改用 --index)除 --index-url 之外要使用的额外包索引 URL。

接受符合 PEP 503(简单存储库 API)的存储库,或以相同格式布局的本地目录。

通过此标志提供的所有索引的优先级都高于 --index-url(默认为 PyPI)指定的索引。当提供多个 --extra-index-url 标志时,较早的值具有更高的优先级。

也可以通过 UV_EXTRA_INDEX_URL 环境变量设置。

除在注册表索引中找到的位置外,还要搜索候选分发包的位置。

如果是路径,则目标必须是包含顶层 wheel 文件 (.whl) 或源代码分发包(例如 .tar.gz.zip)的目录。

如果是 URL,页面必须包含符合上述格式的包文件链接的平面列表。

也可以通过 UV_FIND_LINKS 环境变量设置。

--force

强制安装工具。

将替换可执行目录中名称相同的任何现有入口点。

--fork-strategy fork-strategy

在跨 Python 版本和平台选择给定包的多个版本时要使用的策略。

默认情况下,uv 将优化为为每个支持的 Python 版本 (requires-python) 选择每个包的最新版本,同时最小化跨平台的选定版本数量。

fewest 下,uv 将最小化每个包的选定版本数量,优先选择与更广泛支持的 Python 版本或平台兼容的旧版本。

也可以通过 UV_FORK_STRATEGY 环境变量设置。

可选值

  • fewest:优化为为每个包选择最少数量的版本。如果旧版本与更广泛的支持 Python 版本或平台兼容,则可能优先选择旧版本
  • requires-python:优化为为每个支持的 Python 版本选择每个包的最新支持版本
--help, -h

显示此命令的简明帮助信息

--index index

除默认索引外,解析依赖项时要使用的 URL。

接受符合 PEP 503(简单存储库 API)的存储库,或以相同格式布局的本地目录。

通过此标志提供的所有索引的优先级都高于 --default-index(默认为 PyPI)指定的索引。当提供多个 --index 标志时,较早的值具有更高的优先级。

不支持将索引名称用作值。相对路径必须使用 Unix 上的 ./../,或 Windows 上的 .\\..\\./../ 与索引名称区分开来。

也可以通过 UV_INDEX 环境变量设置。

--index-strategy index-strategy

在针对多个索引 URL 进行解析时要使用的策略。

默认情况下,uv 将在给定包可用的第一个索引处停止,并将解析限制为该第一个索引中存在的那些包 (first-index)。这可以防止“依赖混淆”攻击,攻击者可以在该攻击中以相同的名称将恶意包上传到备用索引。

也可以通过 UV_INDEX_STRATEGY 环境变量设置。

可选值

  • first-index:仅使用第一个返回给定包名称匹配结果的索引中的结果
  • unsafe-first-match:搜索跨所有索引的每个包名称,在转到下一个索引之前耗尽第一个索引中的版本
  • unsafe-best-match:搜索跨所有索引的每个包名称,优先选择找到的“最佳”版本。如果包版本存在于多个索引中,则仅查看第一个索引的条目
--index-url, -i index-url

(已弃用:请改用 --default-index)Python 包索引的 URL(默认:https://pypi.ac.cn/simple)。

接受符合 PEP 503(简单存储库 API)的存储库,或以相同格式布局的本地目录。

此标志给出的索引优先级低于通过 --extra-index-url 标志指定的所有其他索引。

也可以通过 UV_INDEX_URL 环境变量设置。

--keyring-provider keyring-provider

尝试使用 keyring 进行索引 URL 的身份验证。

目前,仅支持 --keyring-provider subprocess,它将 uv 配置为使用 keyring CLI 来处理身份验证。

默认为 disabled

也可以通过 UV_KEYRING_PROVIDER 环境变量设置。

可选值

  • disabled:不使用密钥环进行凭据查找
  • subprocess:使用 keyring 命令进行凭据查找
--lfs

从 Git 添加依赖项时是否使用 Git LFS

从全局缓存安装包时要使用的方法。

默认在 macOS 和 Linux 上为 clone(也称为写时复制),在 Windows 上为 hardlink

警告:不建议使用符号链接链接模式,因为它们会在缓存和目标环境之间创建紧密的耦合。例如,清除缓存 (uv cache clean) 将通过移除底层源文件来破坏所有已安装的包。请谨慎使用符号链接。

也可以通过 UV_LINK_MODE 环境变量设置。

可选值

  • clone:将包从源克隆(即写时复制)到目标
  • copy:将包从源复制到目标
  • hardlink:将包从源硬链接到目标
  • symlink:将包从源符号链接到目标
--managed-python

要求使用 uv 管理的 Python 版本 [环境变量: UV_MANAGED_PYTHON=]

默认情况下,uv 优先使用其管理的 Python 版本。但是,如果未安装 uv 管理的 Python,它将使用系统 Python 版本。此选项将禁用系统 Python 版本的调用。

--native-tls

是否从平台的原生存储中加载 TLS 证书 [环境变量: UV_NATIVE_TLS=]

默认情况下,uv 从绑定的 webpki-roots crate 中加载证书。webpki-roots 是一组来自 Mozilla 的可靠信任根,在 uv 中包含它们可提高可移植性和性能(特别是在 macOS 上)。

然而,在某些情况下,您可能希望使用平台的原生证书存储,特别是当您依赖于系统证书存储中包含的公司信任根(例如强制代理)时。

--no-binary

不安装预构建的 wheel。

给定的包将从源代码构建和安装。如果可用,解析器仍将使用预构建的 wheel 来提取包元数据。

也可以通过 UV_NO_BINARY 环境变量设置。

--no-binary-package no-binary-package

不为特定包安装预构建的 wheel

也可以通过 UV_NO_BINARY_PACKAGE 环境变量设置。

--no-build

不构建源代码分发包。

启用后,解析将不会运行任意 Python 代码。已构建的源代码分发包的缓存 wheel 将被重用,但需要构建分发包的操作将报错退出。

也可以通过 UV_NO_BUILD 环境变量设置。

--no-build-isolation

构建源代码分发包时禁用隔离。

假定 PEP 518 指定的构建依赖项已安装。

也可以通过 UV_NO_BUILD_ISOLATION 环境变量设置。

--no-build-isolation-package no-build-isolation-package

为特定包构建源代码分发包时禁用隔离。

假定包的 PEP 518 指定的构建依赖项已安装。

--no-build-package no-build-package

不为特定包构建源代码分发包

也可以通过 UV_NO_BUILD_PACKAGE 环境变量设置。

--no-cache, --no-cache-dir, -n

避免从缓存中读取或写入缓存,而是在操作期间使用临时目录

也可以通过 UV_NO_CACHE 环境变量设置。

--no-config

避免发现配置文件(pyproject.tomluv.toml)。

通常,会在当前目录、父目录或用户配置目录中发现配置文件。

也可以通过 UV_NO_CONFIG 环境变量设置。

--no-index

忽略注册表索引(例如 PyPI),而是依赖直接 URL 依赖项和通过 --find-links 提供的依赖项

--no-managed-python

禁用对 uv 管理的 Python 版本的使用 [环境变量: UV_NO_MANAGED_PYTHON=]

相反,uv 将在系统上搜索合适的 Python 版本。

--no-progress

隐藏所有进度输出 [环境变量: UV_NO_PROGRESS=]

例如,微调器或进度条。

--no-python-downloads

禁用 Python 的自动下载。

--no-sources

解析依赖项时忽略 tool.uv.sources 表。用于根据标准兼容、可发布的包元数据进行锁定,而不是使用任何工作空间、Git、URL 或本地路径源

也可以通过 UV_NO_SOURCES 环境变量设置。

--no-sources-package no-sources-package

不要为指定包使用 tool.uv.sources 表中的源

也可以通过 UV_NO_SOURCES_PACKAGE 环境变量设置。

--offline

禁用网络访问 [环境变量: UV_OFFLINE=]

禁用时,uv 将仅使用本地缓存的数据和本地可用的文件。

--overrides, --override overrides

使用给定的 requirements 文件覆盖版本。

覆盖文件是类似于 requirements.txt 的文件,它们强制安装特定版本的需求,无论任何组成包声明了什么需求,也无论这是否会被视为无效解析。

约束是加性的,即它们与组成包的需求相结合;而覆盖是绝对的,即它们完全替换了组成包的需求。

也可以通过 UV_OVERRIDE 环境变量设置。

--prerelease prerelease

考虑预发布版本时要使用的策略。

默认情况下,uv 将接受 发布预发布版本的包,以及在声明的需求说明符中包含显式预发布标记的一方需求 (if-necessary-or-explicit)。

也可以通过 UV_PRERELEASE 环境变量设置。

可选值

  • disallow:不允许所有预发布版本
  • allow:允许所有预发布版本
  • if-necessary:如果包的所有版本都是预发布版本,则允许预发布版本
  • explicit:允许在版本需求中具有显式预发布标记的一方包的预发布版本
  • if-necessary-or-explicit:如果包的所有版本都是预发布版本,或者如果包在版本需求中具有显式预发布标记,则允许预发布版本
--project project

在给定目录中发现项目。

所有 pyproject.tomluv.toml.python-version 文件都将通过从项目根目录向上遍历目录树来发现,项目的虚拟环境 (.venv) 也是如此。

其他命令行参数(例如相对路径)将相对于当前工作目录进行解析。

参见 --directory 以完全更改工作目录。

当在 uv pip 接口中使用时,此设置无效。

也可以通过 UV_PROJECT 环境变量设置。

--python, -p python

用于构建工具环境的 Python 解释器。

请参阅 uv python 以了解有关 Python 发现和支持的请求格式的详细信息。

也可以通过 UV_PYTHON 环境变量设置。

--python-platform python-platform

应该为其安装需求的目标平台。

表示为“目标三元组”,这是一个描述目标平台的字符串,包括 CPU、供应商和操作系统名称,例如 x86_64-unknown-linux-gnuaarch64-apple-darwin

当针对 macOS (Darwin) 时,默认最小版本为 13.0。使用 MACOSX_DEPLOYMENT_TARGET 指定不同的最小版本,例如 14.0

当针对 iOS 时,默认最小版本为 13.0。使用 IPHONEOS_DEPLOYMENT_TARGET 指定不同的最小版本,例如 14.0

当针对 Android 时,默认最小 Android API 级别为 24。使用 ANDROID_API_LEVEL 指定不同的最小版本,例如 26

警告:指定时,uv 将选择与 目标 平台兼容的 wheel;因此,安装的分发包可能与 当前 平台不兼容。相反,从源代码构建的任何分发包都可能与 目标 平台不兼容,因为它们是为 当前 平台构建的。--python-platform 选项旨在用于高级用例。

可选值

  • windowsx86_64-pc-windows-msvc 的别名,Windows 的默认目标
  • linuxx86_64-unknown-linux-gnu 的别名,Linux 的默认目标
  • macosaarch64-apple-darwin 的别名,macOS 的默认目标
  • x86_64-pc-windows-msvc:64 位 x86 Windows 目标
  • aarch64-pc-windows-msvc:ARM64 Windows 目标
  • i686-pc-windows-msvc:32 位 x86 Windows 目标
  • x86_64-unknown-linux-gnu:x86 Linux 目标。等效于 x86_64-manylinux_2_28
  • aarch64-apple-darwin:ARM 架构 macOS 目标,如 Apple Silicon 设备上所见
  • x86_64-apple-darwin:x86 macOS 目标
  • aarch64-unknown-linux-gnu:ARM64 Linux 目标。等效于 aarch64-manylinux_2_28
  • aarch64-unknown-linux-musl:ARM64 Linux 目标
  • x86_64-unknown-linux-muslx86_64 Linux 目标
  • riscv64-unknown-linux:RISCV64 Linux 目标
  • x86_64-manylinux2014manylinux2014 平台的 x86_64 目标。等效于 x86_64-manylinux_2_17
  • x86_64-manylinux_2_17manylinux_2_17 平台的 x86_64 目标
  • x86_64-manylinux_2_28manylinux_2_28 平台的 x86_64 目标
  • x86_64-manylinux_2_31manylinux_2_31 平台的 x86_64 目标
  • x86_64-manylinux_2_32manylinux_2_32 平台的 x86_64 目标
  • x86_64-manylinux_2_33manylinux_2_33 平台的 x86_64 目标
  • x86_64-manylinux_2_34manylinux_2_34 平台的 x86_64 目标
  • x86_64-manylinux_2_35manylinux_2_35 平台的 x86_64 目标
  • x86_64-manylinux_2_36manylinux_2_36 平台的 x86_64 目标
  • x86_64-manylinux_2_37manylinux_2_37 平台的 x86_64 目标
  • x86_64-manylinux_2_38manylinux_2_38 平台的 x86_64 目标
  • x86_64-manylinux_2_39manylinux_2_39 平台的 x86_64 目标
  • x86_64-manylinux_2_40manylinux_2_40 平台的 x86_64 目标
  • aarch64-manylinux2014manylinux2014 平台的 ARM64 目标。等效于 aarch64-manylinux_2_17
  • aarch64-manylinux_2_17manylinux_2_17 平台的 ARM64 目标
  • aarch64-manylinux_2_28manylinux_2_28 平台的 ARM64 目标
  • aarch64-manylinux_2_31manylinux_2_31 平台的 ARM64 目标
  • aarch64-manylinux_2_32manylinux_2_32 平台的 ARM64 目标
  • aarch64-manylinux_2_33manylinux_2_33 平台的 ARM64 目标
  • aarch64-manylinux_2_34manylinux_2_34 平台的 ARM64 目标
  • aarch64-manylinux_2_35manylinux_2_35 平台的 ARM64 目标
  • aarch64-manylinux_2_36manylinux_2_36 平台的 ARM64 目标
  • aarch64-manylinux_2_37manylinux_2_37 平台的 ARM64 目标
  • aarch64-manylinux_2_38manylinux_2_38 平台的 ARM64 目标
  • aarch64-manylinux_2_39manylinux_2_39 平台的 ARM64 目标
  • aarch64-manylinux_2_40manylinux_2_40 平台的 ARM64 目标
  • aarch64-linux-android:ARM64 Android 目标
  • x86_64-linux-androidx86_64 Android 目标
  • wasm32-pyodide2024:使用 Pyodide 2024 平台的 wasm32 目标。旨在与 Python 3.12 一起使用
  • arm64-apple-ios:iOS 设备的 ARM64 目标
  • arm64-apple-ios-simulator:iOS 模拟器的 ARM64 目标
  • x86_64-apple-ios-simulator:iOS 模拟器的 x86_64 目标
--quiet, -q

使用安静输出。

重复此选项,例如 -qq,将启用静默模式,其中 uv 不会将任何输出写入标准输出。

--refresh

刷新所有缓存数据

--refresh-package refresh-package

刷新特定包的缓存数据

--reinstall, --force-reinstall

重新安装所有包,无论它们是否已安装。暗示 --refresh

--reinstall-package reinstall-package

重新安装特定包,无论它是否已安装。暗示 --refresh-package

--resolution resolution

在为给定包需求选择不同的兼容版本时要使用的策略。

默认情况下,uv 将使用每个包的最新兼容版本 (highest)。

也可以通过 UV_RESOLUTION 环境变量设置。

可选值

  • highest:解析每个包的最高兼容版本
  • lowest:解析每个包的最低兼容版本
  • lowest-direct:解析任何直接依赖项的最低兼容版本,以及任何传递依赖项的最高兼容版本
--torch-backend torch-backend

获取 PyTorch 生态系统中的包时使用的后端(例如 cpucu126auto

设置时,uv 将忽略 PyTorch 生态系统中包的已配置索引 URL,并将改用定义的后端。

例如,当设置为 cpu 时,uv 将使用仅限 CPU 的 PyTorch 索引;当设置为 cu126 时,uv 将使用适用于 CUDA 12.6 的 PyTorch 索引。

auto 模式将尝试根据当前安装的 CUDA 驱动程序检测适当的 PyTorch 索引。

此选项处于预览阶段,可能在任何未来版本中更改。

也可以通过 UV_TORCH_BACKEND 环境变量设置。

可选值

  • auto: 根据操作系统和 CUDA 驱动版本选择适当的 PyTorch 索引
  • cpu: 使用仅限 CPU 的 PyTorch 索引
  • cu130: 使用适用于 CUDA 13.0 的 PyTorch 索引
  • cu129: 使用适用于 CUDA 12.9 的 PyTorch 索引
  • cu128: 使用适用于 CUDA 12.8 的 PyTorch 索引
  • cu126: 使用适用于 CUDA 12.6 的 PyTorch 索引
  • cu125: 使用适用于 CUDA 12.5 的 PyTorch 索引
  • cu124: 使用适用于 CUDA 12.4 的 PyTorch 索引
  • cu123: 使用适用于 CUDA 12.3 的 PyTorch 索引
  • cu122: 使用适用于 CUDA 12.2 的 PyTorch 索引
  • cu121: 使用适用于 CUDA 12.1 的 PyTorch 索引
  • cu120: 使用适用于 CUDA 12.0 的 PyTorch 索引
  • cu118: 使用适用于 CUDA 11.8 的 PyTorch 索引
  • cu117: 使用适用于 CUDA 11.7 的 PyTorch 索引
  • cu116: 使用适用于 CUDA 11.6 的 PyTorch 索引
  • cu115: 使用适用于 CUDA 11.5 的 PyTorch 索引
  • cu114: 使用适用于 CUDA 11.4 的 PyTorch 索引
  • cu113: 使用适用于 CUDA 11.3 的 PyTorch 索引
  • cu112: 使用适用于 CUDA 11.2 的 PyTorch 索引
  • cu111: 使用适用于 CUDA 11.1 的 PyTorch 索引
  • cu110: 使用适用于 CUDA 11.0 的 PyTorch 索引
  • cu102: 使用适用于 CUDA 10.2 的 PyTorch 索引
  • cu101: 使用适用于 CUDA 10.1 的 PyTorch 索引
  • cu100: 使用适用于 CUDA 10.0 的 PyTorch 索引
  • cu92: 使用适用于 CUDA 9.2 的 PyTorch 索引
  • cu91: 使用适用于 CUDA 9.1 的 PyTorch 索引
  • cu90: 使用适用于 CUDA 9.0 的 PyTorch 索引
  • cu80: 使用适用于 CUDA 8.0 的 PyTorch 索引
  • rocm7.1: 使用适用于 ROCm 7.1 的 PyTorch 索引
  • rocm7.0: 使用适用于 ROCm 7.0 的 PyTorch 索引
  • rocm6.4: 使用适用于 ROCm 6.4 的 PyTorch 索引
  • rocm6.3: 使用适用于 ROCm 6.3 的 PyTorch 索引
  • rocm6.2.4: 使用适用于 ROCm 6.2.4 的 PyTorch 索引
  • rocm6.2: 使用适用于 ROCm 6.2 的 PyTorch 索引
  • rocm6.1: 使用适用于 ROCm 6.1 的 PyTorch 索引
  • rocm6.0: 使用适用于 ROCm 6.0 的 PyTorch 索引
  • rocm5.7: 使用适用于 ROCm 5.7 的 PyTorch 索引
  • rocm5.6: 使用适用于 ROCm 5.6 的 PyTorch 索引
  • rocm5.5: 使用适用于 ROCm 5.5 的 PyTorch 索引
  • rocm5.4.2: 使用适用于 ROCm 5.4.2 的 PyTorch 索引
  • rocm5.4: 使用适用于 ROCm 5.4 的 PyTorch 索引
  • rocm5.3: 使用适用于 ROCm 5.3 的 PyTorch 索引
  • rocm5.2: 使用适用于 ROCm 5.2 的 PyTorch 索引
  • rocm5.1.1: 使用适用于 ROCm 5.1.1 的 PyTorch 索引
  • rocm4.2: 使用适用于 ROCm 4.2 的 PyTorch 索引
  • rocm4.1: 使用适用于 ROCm 4.1 的 PyTorch 索引
  • rocm4.0.1: 使用适用于 ROCm 4.0.1 的 PyTorch 索引
  • xpu: 使用适用于 Intel XPU 的 PyTorch 索引
--upgrade, -U

允许包升级,忽略任何现有输出文件中的固定版本。暗示 --refresh

--upgrade-package, -P upgrade-package

允许升级特定包,忽略任何现有输出文件中的固定版本。暗示 --refresh-package

--verbose, -v

使用详细输出。

您可以使用 RUST_LOG 环境变量配置细粒度日志记录。(https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html#directives

--with, -w with

包含以下额外需求

--with-editable with-editable

以可编辑模式包含给定的包

--with-executables-from with-executables-from

从以下包中安装可执行文件

--with-requirements with-requirements

在使用给定文件中列出的包的情况下运行。

支持以下格式:requirements.txt、具有内联元数据的 .py 文件和 pylock.toml

uv tool upgrade

升级已安装的工具。

如果工具在安装时带有版本约束,升级时将遵守这些约束——要将工具升级到超出最初提供的约束范围,请再次使用 uv tool install

如果工具在安装时带有特定设置,升级时将遵守这些设置。例如,如果在安装期间提供了 --prereleases allow,升级时将继续予以遵守。

用法

uv tool upgrade [OPTIONS] <NAME>...

参数

NAME

要升级的工具名称,以及可选的版本说明符

Options (选项)

--all

升级所有工具

--allow-insecure-host, --trusted-host allow-insecure-host

允许与主机建立不安全连接。

可以多次提供。

期望接收主机名(例如 localhost)、主机-端口对(例如 localhost:8080)或 URL(例如 https://)。

警告:此列表中的主机不会根据系统的证书存储进行验证。仅在具有受信任来源的安全网络中使用 --allow-insecure-host,因为它会绕过 SSL 验证,可能会使您面临 MITM 攻击。

也可以通过 UV_INSECURE_HOST 环境变量设置。

--cache-dir cache-dir

缓存目录的路径。

默认在 macOS 和 Linux 上为 $XDG_CACHE_HOME/uv$HOME/.cache/uv,在 Windows 上为 %LOCALAPPDATA%\uv\cache

要查看缓存目录的位置,请运行 uv cache dir

也可以通过 UV_CACHE_DIR 环境变量设置。

--color color-choice

控制输出中颜色的使用。

默认情况下,uv 在写入终端时会自动检测对颜色的支持。

可选值

  • auto:仅在输出到支持颜色的终端或 TTY 时启用彩色输出
  • always:无论检测到的环境如何,都启用彩色输出
  • never:禁用彩色输出
--compile-bytecode, --compile

安装后将 Python 文件编译为字节码。

默认情况下,uv 不会将 Python (.py) 文件编译为字节码 (__pycache__/*.pyc);相反,编译是在模块首次导入时延迟执行的。对于启动时间至关重要的用例(例如 CLI 应用程序和 Docker 容器),可以启用此选项,以牺牲较长的安装时间换取更快的启动时间。

启用后,uv 将处理整个 site-packages 目录(包括当前操作未修改的包)以保持一致性。像 pip 一样,它也会忽略错误。

也可以通过 UV_COMPILE_BYTECODE 环境变量设置。

--config-file config-file

用于配置的 uv.toml 文件路径。

虽然 uv 配置可以包含在 pyproject.toml 文件中,但在这种上下文下是不允许的。

也可以通过 UV_CONFIG_FILE 环境变量设置。

--config-setting, --config-settings, -C config-setting

传递给 PEP 517 构建后端的设置,指定为 KEY=VALUE

--config-setting-package, --config-settings-package config-setting-package

传递给特定包的 PEP 517 构建后端的设置,指定为 PACKAGE:KEY=VALUE

--default-index default-index

默认包索引的 URL(默认:https://pypi.ac.cn/simple)。

接受符合 PEP 503(简单存储库 API)的存储库,或以相同格式布局的本地目录。

此标志给出的索引优先级低于通过 --index 标志指定的所有其他索引。

也可以通过 UV_DEFAULT_INDEX 环境变量设置。

--directory directory

在运行命令之前切换到指定目录。

相对路径将以给定目录为基础进行解析。

参见 --project 仅更改项目根目录。

也可以通过 UV_WORKING_DIR 环境变量设置。

--exclude-newer exclude-newer

将候选包限制为给定日期之前上传的包。

接受 RFC 3339 时间戳(例如 2006-12-02T02:07:43Z)、相同格式的本地日期(例如 2006-12-02,基于系统配置的时区解析)、“友好”持续时间(例如 24 hours1 week30 days)或 ISO 8601 持续时间(例如 PT24HP7DP30D)。

持续时间不尊重本地时区的语义,始终假定一天为 24 小时(例如忽略夏令时转换)并解析为固定的秒数。不允许使用月和年等日历单位。

也可以通过 UV_EXCLUDE_NEWER 环境变量设置。

--exclude-newer-package exclude-newer-package

将特定包的候选包限制为给定日期之前上传的包。

接受 PACKAGE=DATE 格式的包-日期对,其中 DATE 是 RFC 3339 时间戳(例如 2006-12-02T02:07:43Z)、相同格式的本地日期(例如 2006-12-02,基于系统配置的时区解析)、“友好”持续时间(例如 24 hours1 week30 days)或 ISO 8601 持续时间(例如 PT24HP7DP30D)。

持续时间不尊重本地时区的语义,始终假定一天为 24 小时(例如忽略夏令时转换)并解析为固定的秒数。不允许使用月和年等日历单位。

可以为不同的包多次提供。

--extra-index-url extra-index-url

(已弃用:请改用 --index)除 --index-url 之外要使用的额外包索引 URL。

接受符合 PEP 503(简单存储库 API)的存储库,或以相同格式布局的本地目录。

通过此标志提供的所有索引的优先级都高于 --index-url(默认为 PyPI)指定的索引。当提供多个 --extra-index-url 标志时,较早的值具有更高的优先级。

也可以通过 UV_EXTRA_INDEX_URL 环境变量设置。

除在注册表索引中找到的位置外,还要搜索候选分发包的位置。

如果是路径,则目标必须是包含顶层 wheel 文件 (.whl) 或源代码分发包(例如 .tar.gz.zip)的目录。

如果是 URL,页面必须包含符合上述格式的包文件链接的平面列表。

也可以通过 UV_FIND_LINKS 环境变量设置。

--fork-strategy fork-strategy

在跨 Python 版本和平台选择给定包的多个版本时要使用的策略。

默认情况下,uv 将优化为为每个支持的 Python 版本 (requires-python) 选择每个包的最新版本,同时最小化跨平台的选定版本数量。

fewest 下,uv 将最小化每个包的选定版本数量,优先选择与更广泛支持的 Python 版本或平台兼容的旧版本。

也可以通过 UV_FORK_STRATEGY 环境变量设置。

可选值

  • fewest:优化为为每个包选择最少数量的版本。如果旧版本与更广泛的支持 Python 版本或平台兼容,则可能优先选择旧版本
  • requires-python:优化为为每个支持的 Python 版本选择每个包的最新支持版本
--help, -h

显示此命令的简明帮助信息

--index index

除默认索引外,解析依赖项时要使用的 URL。

接受符合 PEP 503(简单存储库 API)的存储库,或以相同格式布局的本地目录。

通过此标志提供的所有索引的优先级都高于 --default-index(默认为 PyPI)指定的索引。当提供多个 --index 标志时,较早的值具有更高的优先级。

不支持将索引名称用作值。相对路径必须使用 Unix 上的 ./../,或 Windows 上的 .\\..\\./../ 与索引名称区分开来。

也可以通过 UV_INDEX 环境变量设置。

--index-strategy index-strategy

在针对多个索引 URL 进行解析时要使用的策略。

默认情况下,uv 将在给定包可用的第一个索引处停止,并将解析限制为该第一个索引中存在的那些包 (first-index)。这可以防止“依赖混淆”攻击,攻击者可以在该攻击中以相同的名称将恶意包上传到备用索引。

也可以通过 UV_INDEX_STRATEGY 环境变量设置。

可选值

  • first-index:仅使用第一个返回给定包名称匹配结果的索引中的结果
  • unsafe-first-match:搜索跨所有索引的每个包名称,在转到下一个索引之前耗尽第一个索引中的版本
  • unsafe-best-match:搜索跨所有索引的每个包名称,优先选择找到的“最佳”版本。如果包版本存在于多个索引中,则仅查看第一个索引的条目
--index-url, -i index-url

(已弃用:请改用 --default-index)Python 包索引的 URL(默认:https://pypi.ac.cn/simple)。

接受符合 PEP 503(简单存储库 API)的存储库,或以相同格式布局的本地目录。

此标志给出的索引优先级低于通过 --extra-index-url 标志指定的所有其他索引。

也可以通过 UV_INDEX_URL 环境变量设置。

--keyring-provider keyring-provider

尝试使用 keyring 进行索引 URL 的身份验证。

目前,仅支持 --keyring-provider subprocess,它将 uv 配置为使用 keyring CLI 来处理身份验证。

默认为 disabled

也可以通过 UV_KEYRING_PROVIDER 环境变量设置。

可选值

  • disabled:不使用密钥环进行凭据查找
  • subprocess:使用 keyring 命令进行凭据查找

从全局缓存安装包时要使用的方法。

默认在 macOS 和 Linux 上为 clone(也称为写时复制),在 Windows 上为 hardlink

警告:不建议使用符号链接链接模式,因为它们会在缓存和目标环境之间创建紧密的耦合。例如,清除缓存 (uv cache clean) 将通过移除底层源文件来破坏所有已安装的包。请谨慎使用符号链接。

也可以通过 UV_LINK_MODE 环境变量设置。

可选值

  • clone:将包从源克隆(即写时复制)到目标
  • copy:将包从源复制到目标
  • hardlink:将包从源硬链接到目标
  • symlink:将包从源符号链接到目标
--managed-python

要求使用 uv 管理的 Python 版本 [环境变量: UV_MANAGED_PYTHON=]

默认情况下,uv 优先使用其管理的 Python 版本。但是,如果未安装 uv 管理的 Python,它将使用系统 Python 版本。此选项将禁用系统 Python 版本的调用。

--native-tls

是否从平台的原生存储中加载 TLS 证书 [环境变量: UV_NATIVE_TLS=]

默认情况下,uv 从绑定的 webpki-roots crate 中加载证书。webpki-roots 是一组来自 Mozilla 的可靠信任根,在 uv 中包含它们可提高可移植性和性能(特别是在 macOS 上)。

然而,在某些情况下,您可能希望使用平台的原生证书存储,特别是当您依赖于系统证书存储中包含的公司信任根(例如强制代理)时。

--no-binary

不安装预构建的 wheel。

给定的包将从源代码构建和安装。如果可用,解析器仍将使用预构建的 wheel 来提取包元数据。

也可以通过 UV_NO_BINARY 环境变量设置。

--no-binary-package no-binary-package

不为特定包安装预构建的 wheel

也可以通过 UV_NO_BINARY_PACKAGE 环境变量设置。

--no-build

不构建源代码分发包。

启用后,解析将不会运行任意 Python 代码。已构建的源代码分发包的缓存 wheel 将被重用,但需要构建分发包的操作将报错退出。

也可以通过 UV_NO_BUILD 环境变量设置。

--no-build-isolation

构建源代码分发包时禁用隔离。

假定 PEP 518 指定的构建依赖项已安装。

也可以通过 UV_NO_BUILD_ISOLATION 环境变量设置。

--no-build-isolation-package no-build-isolation-package

为特定包构建源代码分发包时禁用隔离。

假定包的 PEP 518 指定的构建依赖项已安装。

--no-build-package no-build-package

不为特定包构建源代码分发包

也可以通过 UV_NO_BUILD_PACKAGE 环境变量设置。

--no-cache, --no-cache-dir, -n

避免从缓存中读取或写入缓存,而是在操作期间使用临时目录

也可以通过 UV_NO_CACHE 环境变量设置。

--no-config

避免发现配置文件(pyproject.tomluv.toml)。

通常,会在当前目录、父目录或用户配置目录中发现配置文件。

也可以通过 UV_NO_CONFIG 环境变量设置。

--no-index

忽略注册表索引(例如 PyPI),而是依赖直接 URL 依赖项和通过 --find-links 提供的依赖项

--no-managed-python

禁用对 uv 管理的 Python 版本的使用 [环境变量: UV_NO_MANAGED_PYTHON=]

相反,uv 将在系统上搜索合适的 Python 版本。

--no-progress

隐藏所有进度输出 [环境变量: UV_NO_PROGRESS=]

例如,微调器或进度条。

--no-python-downloads

禁用 Python 的自动下载。

--no-sources

解析依赖项时忽略 tool.uv.sources 表。用于根据标准兼容、可发布的包元数据进行锁定,而不是使用任何工作空间、Git、URL 或本地路径源

也可以通过 UV_NO_SOURCES 环境变量设置。

--no-sources-package no-sources-package

不要为指定包使用 tool.uv.sources 表中的源

也可以通过 UV_NO_SOURCES_PACKAGE 环境变量设置。

--offline

禁用网络访问 [环境变量: UV_OFFLINE=]

禁用时,uv 将仅使用本地缓存的数据和本地可用的文件。

--prerelease prerelease

考虑预发布版本时要使用的策略。

默认情况下,uv 将接受 发布预发布版本的包,以及在声明的需求说明符中包含显式预发布标记的一方需求 (if-necessary-or-explicit)。

也可以通过 UV_PRERELEASE 环境变量设置。

可选值

  • disallow:不允许所有预发布版本
  • allow:允许所有预发布版本
  • if-necessary:如果包的所有版本都是预发布版本,则允许预发布版本
  • explicit:允许在版本需求中具有显式预发布标记的一方包的预发布版本
  • if-necessary-or-explicit:如果包的所有版本都是预发布版本,或者如果包在版本需求中具有显式预发布标记,则允许预发布版本
--project project

在给定目录中发现项目。

所有 pyproject.tomluv.toml.python-version 文件都将通过从项目根目录向上遍历目录树来发现,项目的虚拟环境 (.venv) 也是如此。

其他命令行参数(例如相对路径)将相对于当前工作目录进行解析。

参见 --directory 以完全更改工作目录。

当在 uv pip 接口中使用时,此设置无效。

也可以通过 UV_PROJECT 环境变量设置。

--python, -p python

升级工具,并指定其使用给定的 Python 解释器来构建其环境。与 --all 一起使用以应用于所有工具。

请参阅 uv python 以了解有关 Python 发现和支持的请求格式的详细信息。

也可以通过 UV_PYTHON 环境变量设置。

--python-platform python-platform

应该为其安装需求的目标平台。

表示为“目标三元组”,这是一个描述目标平台的字符串,包括 CPU、供应商和操作系统名称,例如 x86_64-unknown-linux-gnuaarch64-apple-darwin

当针对 macOS (Darwin) 时,默认最小版本为 13.0。使用 MACOSX_DEPLOYMENT_TARGET 指定不同的最小版本,例如 14.0

当针对 iOS 时,默认最小版本为 13.0。使用 IPHONEOS_DEPLOYMENT_TARGET 指定不同的最小版本,例如 14.0

当针对 Android 时,默认最小 Android API 级别为 24。使用 ANDROID_API_LEVEL 指定不同的最小版本,例如 26

警告:指定时,uv 将选择与 目标 平台兼容的 wheel;因此,安装的分发包可能与 当前 平台不兼容。相反,从源代码构建的任何分发包都可能与 目标 平台不兼容,因为它们是为 当前 平台构建的。--python-platform 选项旨在用于高级用例。

可选值

  • windowsx86_64-pc-windows-msvc 的别名,Windows 的默认目标
  • linuxx86_64-unknown-linux-gnu 的别名,Linux 的默认目标
  • macosaarch64-apple-darwin 的别名,macOS 的默认目标
  • x86_64-pc-windows-msvc:64 位 x86 Windows 目标
  • aarch64-pc-windows-msvc:ARM64 Windows 目标
  • i686-pc-windows-msvc:32 位 x86 Windows 目标
  • x86_64-unknown-linux-gnu:x86 Linux 目标。等效于 x86_64-manylinux_2_28
  • aarch64-apple-darwin:ARM 架构 macOS 目标,如 Apple Silicon 设备上所见
  • x86_64-apple-darwin:x86 macOS 目标
  • aarch64-unknown-linux-gnu:ARM64 Linux 目标。等效于 aarch64-manylinux_2_28
  • aarch64-unknown-linux-musl:ARM64 Linux 目标
  • x86_64-unknown-linux-muslx86_64 Linux 目标
  • riscv64-unknown-linux:RISCV64 Linux 目标
  • x86_64-manylinux2014manylinux2014 平台的 x86_64 目标。等效于 x86_64-manylinux_2_17
  • x86_64-manylinux_2_17manylinux_2_17 平台的 x86_64 目标
  • x86_64-manylinux_2_28manylinux_2_28 平台的 x86_64 目标
  • x86_64-manylinux_2_31manylinux_2_31 平台的 x86_64 目标
  • x86_64-manylinux_2_32manylinux_2_32 平台的 x86_64 目标
  • x86_64-manylinux_2_33manylinux_2_33 平台的 x86_64 目标
  • x86_64-manylinux_2_34manylinux_2_34 平台的 x86_64 目标
  • x86_64-manylinux_2_35manylinux_2_35 平台的 x86_64 目标
  • x86_64-manylinux_2_36manylinux_2_36 平台的 x86_64 目标
  • x86_64-manylinux_2_37manylinux_2_37 平台的 x86_64 目标
  • x86_64-manylinux_2_38manylinux_2_38 平台的 x86_64 目标
  • x86_64-manylinux_2_39manylinux_2_39 平台的 x86_64 目标
  • x86_64-manylinux_2_40manylinux_2_40 平台的 x86_64 目标
  • aarch64-manylinux2014manylinux2014 平台的 ARM64 目标。等效于 aarch64-manylinux_2_17
  • aarch64-manylinux_2_17manylinux_2_17 平台的 ARM64 目标
  • aarch64-manylinux_2_28manylinux_2_28 平台的 ARM64 目标
  • aarch64-manylinux_2_31manylinux_2_31 平台的 ARM64 目标
  • aarch64-manylinux_2_32manylinux_2_32 平台的 ARM64 目标
  • aarch64-manylinux_2_33manylinux_2_33 平台的 ARM64 目标
  • aarch64-manylinux_2_34manylinux_2_34 平台的 ARM64 目标
  • aarch64-manylinux_2_35manylinux_2_35 平台的 ARM64 目标
  • aarch64-manylinux_2_36manylinux_2_36 平台的 ARM64 目标
  • aarch64-manylinux_2_37manylinux_2_37 平台的 ARM64 目标
  • aarch64-manylinux_2_38manylinux_2_38 平台的 ARM64 目标
  • aarch64-manylinux_2_39manylinux_2_39 平台的 ARM64 目标
  • aarch64-manylinux_2_40manylinux_2_40 平台的 ARM64 目标
  • aarch64-linux-android:ARM64 Android 目标
  • x86_64-linux-androidx86_64 Android 目标
  • wasm32-pyodide2024:使用 Pyodide 2024 平台的 wasm32 目标。旨在与 Python 3.12 一起使用
  • arm64-apple-ios:iOS 设备的 ARM64 目标
  • arm64-apple-ios-simulator:iOS 模拟器的 ARM64 目标
  • x86_64-apple-ios-simulator:iOS 模拟器的 x86_64 目标
--quiet, -q

使用安静输出。

重复此选项,例如 -qq,将启用静默模式,其中 uv 不会将任何输出写入标准输出。

--reinstall, --force-reinstall

重新安装所有包,无论它们是否已安装。暗示 --refresh

--reinstall-package reinstall-package

重新安装特定包,无论它是否已安装。暗示 --refresh-package

--resolution resolution

在为给定包需求选择不同的兼容版本时要使用的策略。

默认情况下,uv 将使用每个包的最新兼容版本 (highest)。

也可以通过 UV_RESOLUTION 环境变量设置。

可选值

  • highest:解析每个包的最高兼容版本
  • lowest:解析每个包的最低兼容版本
  • lowest-direct:解析任何直接依赖项的最低兼容版本,以及任何传递依赖项的最高兼容版本
--verbose, -v

使用详细输出。

您可以使用 RUST_LOG 环境变量配置细粒度日志记录。(https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html#directives

uv tool list

列出已安装的工具

用法

uv tool list [OPTIONS]

Options (选项)

--allow-insecure-host, --trusted-host allow-insecure-host

允许与主机建立不安全连接。

可以多次提供。

期望接收主机名(例如 localhost)、主机-端口对(例如 localhost:8080)或 URL(例如 https://)。

警告:此列表中的主机不会根据系统的证书存储进行验证。仅在具有受信任来源的安全网络中使用 --allow-insecure-host,因为它会绕过 SSL 验证,可能会使您面临 MITM 攻击。

也可以通过 UV_INSECURE_HOST 环境变量设置。

--cache-dir cache-dir

缓存目录的路径。

默认在 macOS 和 Linux 上为 $XDG_CACHE_HOME/uv$HOME/.cache/uv,在 Windows 上为 %LOCALAPPDATA%\uv\cache

要查看缓存目录的位置,请运行 uv cache dir

也可以通过 UV_CACHE_DIR 环境变量设置。

--color color-choice

控制输出中颜色的使用。

默认情况下,uv 在写入终端时会自动检测对颜色的支持。

可选值

  • auto:仅在输出到支持颜色的终端或 TTY 时启用彩色输出
  • always:无论检测到的环境如何,都启用彩色输出
  • never:禁用彩色输出
--config-file config-file

用于配置的 uv.toml 文件路径。

虽然 uv 配置可以包含在 pyproject.toml 文件中,但在这种上下文下是不允许的。

也可以通过 UV_CONFIG_FILE 环境变量设置。

--directory directory

在运行命令之前切换到指定目录。

相对路径将以给定目录为基础进行解析。

参见 --project 仅更改项目根目录。

也可以通过 UV_WORKING_DIR 环境变量设置。

--help, -h

显示此命令的简明帮助信息

--managed-python

要求使用 uv 管理的 Python 版本 [环境变量: UV_MANAGED_PYTHON=]

默认情况下,uv 优先使用其管理的 Python 版本。但是,如果未安装 uv 管理的 Python,它将使用系统 Python 版本。此选项将禁用系统 Python 版本的调用。

--native-tls

是否从平台的原生存储中加载 TLS 证书 [环境变量: UV_NATIVE_TLS=]

默认情况下,uv 从绑定的 webpki-roots crate 中加载证书。webpki-roots 是一组来自 Mozilla 的可靠信任根,在 uv 中包含它们可提高可移植性和性能(特别是在 macOS 上)。

然而,在某些情况下,您可能希望使用平台的原生证书存储,特别是当您依赖于系统证书存储中包含的公司信任根(例如强制代理)时。

--no-cache, --no-cache-dir, -n

避免从缓存中读取或写入缓存,而是在操作期间使用临时目录

也可以通过 UV_NO_CACHE 环境变量设置。

--no-config

避免发现配置文件(pyproject.tomluv.toml)。

通常,会在当前目录、父目录或用户配置目录中发现配置文件。

也可以通过 UV_NO_CONFIG 环境变量设置。

--no-managed-python

禁用对 uv 管理的 Python 版本的使用 [环境变量: UV_NO_MANAGED_PYTHON=]

相反,uv 将在系统上搜索合适的 Python 版本。

--no-progress

隐藏所有进度输出 [环境变量: UV_NO_PROGRESS=]

例如,微调器或进度条。

--offline

禁用网络访问 [环境变量: UV_OFFLINE=]

禁用时,uv 将仅使用本地缓存的数据和本地可用的文件。

--project project

在给定目录中发现项目。

所有 pyproject.tomluv.toml.python-version 文件都将通过从项目根目录向上遍历目录树来发现,项目的虚拟环境 (.venv) 也是如此。

其他命令行参数(例如相对路径)将相对于当前工作目录进行解析。

参见 --directory 以完全更改工作目录。

当在 uv pip 接口中使用时,此设置无效。

也可以通过 UV_PROJECT 环境变量设置。

--quiet, -q

使用安静输出。

重复此选项,例如 -qq,将启用静默模式,其中 uv 不会将任何输出写入标准输出。

--show-extras

是否显示随每个工具安装的额外需求

--show-paths

是否显示每个工具环境和已安装可执行文件的路径

--show-python

是否显示与每个工具关联的 Python 版本

--show-version-specifiers

是否显示用于安装每个工具的版本说明符

--show-with

是否显示随每个工具安装的附加需求

--verbose, -v

使用详细输出。

您可以使用 RUST_LOG 环境变量配置细粒度日志记录。(https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html#directives

uv tool uninstall

卸载工具

用法

uv tool uninstall [OPTIONS] <NAME>...

参数

NAME

要卸载的工具名称

Options (选项)

--all

卸载所有工具

--allow-insecure-host, --trusted-host allow-insecure-host

允许与主机建立不安全连接。

可以多次提供。

期望接收主机名(例如 localhost)、主机-端口对(例如 localhost:8080)或 URL(例如 https://)。

警告:此列表中的主机不会根据系统的证书存储进行验证。仅在具有受信任来源的安全网络中使用 --allow-insecure-host,因为它会绕过 SSL 验证,可能会使您面临 MITM 攻击。

也可以通过 UV_INSECURE_HOST 环境变量设置。

--cache-dir cache-dir

缓存目录的路径。

默认在 macOS 和 Linux 上为 $XDG_CACHE_HOME/uv$HOME/.cache/uv,在 Windows 上为 %LOCALAPPDATA%\uv\cache

要查看缓存目录的位置,请运行 uv cache dir

也可以通过 UV_CACHE_DIR 环境变量设置。

--color color-choice

控制输出中颜色的使用。

默认情况下,uv 在写入终端时会自动检测对颜色的支持。

可选值

  • auto:仅在输出到支持颜色的终端或 TTY 时启用彩色输出
  • always:无论检测到的环境如何,都启用彩色输出
  • never:禁用彩色输出
--config-file config-file

用于配置的 uv.toml 文件路径。

虽然 uv 配置可以包含在 pyproject.toml 文件中,但在这种上下文下是不允许的。

也可以通过 UV_CONFIG_FILE 环境变量设置。

--directory directory

在运行命令之前切换到指定目录。

相对路径将以给定目录为基础进行解析。

参见 --project 仅更改项目根目录。

也可以通过 UV_WORKING_DIR 环境变量设置。

--help, -h

显示此命令的简明帮助信息

--managed-python

要求使用 uv 管理的 Python 版本 [环境变量: UV_MANAGED_PYTHON=]

默认情况下,uv 优先使用其管理的 Python 版本。但是,如果未安装 uv 管理的 Python,它将使用系统 Python 版本。此选项将禁用系统 Python 版本的调用。

--native-tls

是否从平台的原生存储中加载 TLS 证书 [环境变量: UV_NATIVE_TLS=]

默认情况下,uv 从绑定的 webpki-roots crate 中加载证书。webpki-roots 是一组来自 Mozilla 的可靠信任根,在 uv 中包含它们可提高可移植性和性能(特别是在 macOS 上)。

然而,在某些情况下,您可能希望使用平台的原生证书存储,特别是当您依赖于系统证书存储中包含的公司信任根(例如强制代理)时。

--no-cache, --no-cache-dir, -n

避免从缓存中读取或写入缓存,而是在操作期间使用临时目录

也可以通过 UV_NO_CACHE 环境变量设置。

--no-config

避免发现配置文件(pyproject.tomluv.toml)。

通常,会在当前目录、父目录或用户配置目录中发现配置文件。

也可以通过 UV_NO_CONFIG 环境变量设置。

--no-managed-python

禁用对 uv 管理的 Python 版本的使用 [环境变量: UV_NO_MANAGED_PYTHON=]

相反,uv 将在系统上搜索合适的 Python 版本。

--no-progress

隐藏所有进度输出 [环境变量: UV_NO_PROGRESS=]

例如,微调器或进度条。

--no-python-downloads

禁用 Python 的自动下载。

--offline

禁用网络访问 [环境变量: UV_OFFLINE=]

禁用时,uv 将仅使用本地缓存的数据和本地可用的文件。

--project project

在给定目录中发现项目。

所有 pyproject.tomluv.toml.python-version 文件都将通过从项目根目录向上遍历目录树来发现,项目的虚拟环境 (.venv) 也是如此。

其他命令行参数(例如相对路径)将相对于当前工作目录进行解析。

参见 --directory 以完全更改工作目录。

当在 uv pip 接口中使用时,此设置无效。

也可以通过 UV_PROJECT 环境变量设置。

--quiet, -q

使用安静输出。

重复此选项,例如 -qq,将启用静默模式,其中 uv 不会将任何输出写入标准输出。

--verbose, -v

使用详细输出。

您可以使用 RUST_LOG 环境变量配置细粒度日志记录。(https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html#directives

uv tool update-shell

确保工具可执行文件目录在 PATH 中。

如果工具可执行文件目录不在 PATH 中,uv 将尝试将其添加到相关的 shell 配置文件中。

如果 shell 配置文件中已经包含将可执行文件目录添加到路径的代码,但该目录不在 PATH 中,uv 将以错误退出。

工具可执行文件目录是根据 XDG 标准确定的,可以通过 uv tool dir --bin 检索。

用法

uv tool update-shell [OPTIONS]

Options (选项)

--allow-insecure-host, --trusted-host allow-insecure-host

允许与主机建立不安全连接。

可以多次提供。

期望接收主机名(例如 localhost)、主机-端口对(例如 localhost:8080)或 URL(例如 https://)。

警告:此列表中的主机不会根据系统的证书存储进行验证。仅在具有受信任来源的安全网络中使用 --allow-insecure-host,因为它会绕过 SSL 验证,可能会使您面临 MITM 攻击。

也可以通过 UV_INSECURE_HOST 环境变量设置。

--cache-dir cache-dir

缓存目录的路径。

默认在 macOS 和 Linux 上为 $XDG_CACHE_HOME/uv$HOME/.cache/uv,在 Windows 上为 %LOCALAPPDATA%\uv\cache

要查看缓存目录的位置,请运行 uv cache dir

也可以通过 UV_CACHE_DIR 环境变量设置。

--color color-choice

控制输出中颜色的使用。

默认情况下,uv 在写入终端时会自动检测对颜色的支持。

可选值

  • auto:仅在输出到支持颜色的终端或 TTY 时启用彩色输出
  • always:无论检测到的环境如何,都启用彩色输出
  • never:禁用彩色输出
--config-file config-file

用于配置的 uv.toml 文件路径。

虽然 uv 配置可以包含在 pyproject.toml 文件中,但在这种上下文下是不允许的。

也可以通过 UV_CONFIG_FILE 环境变量设置。

--directory directory

在运行命令之前切换到指定目录。

相对路径将以给定目录为基础进行解析。

参见 --project 仅更改项目根目录。

也可以通过 UV_WORKING_DIR 环境变量设置。

--help, -h

显示此命令的简明帮助信息

--managed-python

要求使用 uv 管理的 Python 版本 [环境变量: UV_MANAGED_PYTHON=]

默认情况下,uv 优先使用其管理的 Python 版本。但是,如果未安装 uv 管理的 Python,它将使用系统 Python 版本。此选项将禁用系统 Python 版本的调用。

--native-tls

是否从平台的原生存储中加载 TLS 证书 [环境变量: UV_NATIVE_TLS=]

默认情况下,uv 从绑定的 webpki-roots crate 中加载证书。webpki-roots 是一组来自 Mozilla 的可靠信任根,在 uv 中包含它们可提高可移植性和性能(特别是在 macOS 上)。

然而,在某些情况下,您可能希望使用平台的原生证书存储,特别是当您依赖于系统证书存储中包含的公司信任根(例如强制代理)时。

--no-cache, --no-cache-dir, -n

避免从缓存中读取或写入缓存,而是在操作期间使用临时目录

也可以通过 UV_NO_CACHE 环境变量设置。

--no-config

避免发现配置文件(pyproject.tomluv.toml)。

通常,会在当前目录、父目录或用户配置目录中发现配置文件。

也可以通过 UV_NO_CONFIG 环境变量设置。

--no-managed-python

禁用对 uv 管理的 Python 版本的使用 [环境变量: UV_NO_MANAGED_PYTHON=]

相反,uv 将在系统上搜索合适的 Python 版本。

--no-progress

隐藏所有进度输出 [环境变量: UV_NO_PROGRESS=]

例如,微调器或进度条。

--no-python-downloads

禁用 Python 的自动下载。

--offline

禁用网络访问 [环境变量: UV_OFFLINE=]

禁用时,uv 将仅使用本地缓存的数据和本地可用的文件。

--project project

在给定目录中发现项目。

所有 pyproject.tomluv.toml.python-version 文件都将通过从项目根目录向上遍历目录树来发现,项目的虚拟环境 (.venv) 也是如此。

其他命令行参数(例如相对路径)将相对于当前工作目录进行解析。

参见 --directory 以完全更改工作目录。

当在 uv pip 接口中使用时,此设置无效。

也可以通过 UV_PROJECT 环境变量设置。

--quiet, -q

使用安静输出。

重复此选项,例如 -qq,将启用静默模式,其中 uv 不会将任何输出写入标准输出。

--verbose, -v

使用详细输出。

您可以使用 RUST_LOG 环境变量配置细粒度日志记录。(https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html#directives

uv tool dir

显示 uv 工具目录的路径。

工具目录用于存储已安装工具的环境和元数据。

默认情况下,工具存储在 Unix 上的 uv 数据目录 $XDG_DATA_HOME/uv/tools$HOME/.local/share/uv/tools 中,在 Windows 上存储在 %APPDATA%\uv\data\tools 中。

工具安装目录可以通过 $UV_TOOL_DIR 覆盖。

要查看 uv 安装可执行文件的目录,请使用 --bin 标志。

用法

uv tool dir [OPTIONS]

Options (选项)

--allow-insecure-host, --trusted-host allow-insecure-host

允许与主机建立不安全连接。

可以多次提供。

期望接收主机名(例如 localhost)、主机-端口对(例如 localhost:8080)或 URL(例如 https://)。

警告:此列表中的主机不会根据系统的证书存储进行验证。仅在具有受信任来源的安全网络中使用 --allow-insecure-host,因为它会绕过 SSL 验证,可能会使您面临 MITM 攻击。

也可以通过 UV_INSECURE_HOST 环境变量设置。

--bin

显示 uv tool 将安装可执行文件的目录。

默认情况下,uv tool dir 显示工具 Python 环境本身安装到的目录,而不是包含已链接可执行文件的目录。

工具可执行文件目录是根据 XDG 标准确定的,并按优先级顺序从以下环境变量中派生

  • $UV_TOOL_BIN_DIR
  • $XDG_BIN_HOME
  • $XDG_DATA_HOME/../bin
  • $HOME/.local/bin
--cache-dir cache-dir

缓存目录的路径。

默认在 macOS 和 Linux 上为 $XDG_CACHE_HOME/uv$HOME/.cache/uv,在 Windows 上为 %LOCALAPPDATA%\uv\cache

要查看缓存目录的位置,请运行 uv cache dir

也可以通过 UV_CACHE_DIR 环境变量设置。

--color color-choice

控制输出中颜色的使用。

默认情况下,uv 在写入终端时会自动检测对颜色的支持。

可选值

  • auto:仅在输出到支持颜色的终端或 TTY 时启用彩色输出
  • always:无论检测到的环境如何,都启用彩色输出
  • never:禁用彩色输出
--config-file config-file

用于配置的 uv.toml 文件路径。

虽然 uv 配置可以包含在 pyproject.toml 文件中,但在这种上下文下是不允许的。

也可以通过 UV_CONFIG_FILE 环境变量设置。

--directory directory

在运行命令之前切换到指定目录。

相对路径将以给定目录为基础进行解析。

参见 --project 仅更改项目根目录。

也可以通过 UV_WORKING_DIR 环境变量设置。

--help, -h

显示此命令的简明帮助信息

--managed-python

要求使用 uv 管理的 Python 版本 [环境变量: UV_MANAGED_PYTHON=]

默认情况下,uv 优先使用其管理的 Python 版本。但是,如果未安装 uv 管理的 Python,它将使用系统 Python 版本。此选项将禁用系统 Python 版本的调用。

--native-tls

是否从平台的原生存储中加载 TLS 证书 [环境变量: UV_NATIVE_TLS=]

默认情况下,uv 从绑定的 webpki-roots crate 中加载证书。webpki-roots 是一组来自 Mozilla 的可靠信任根,在 uv 中包含它们可提高可移植性和性能(特别是在 macOS 上)。

然而,在某些情况下,您可能希望使用平台的原生证书存储,特别是当您依赖于系统证书存储中包含的公司信任根(例如强制代理)时。

--no-cache, --no-cache-dir, -n

避免从缓存中读取或写入缓存,而是在操作期间使用临时目录

也可以通过 UV_NO_CACHE 环境变量设置。

--no-config

避免发现配置文件(pyproject.tomluv.toml)。

通常,会在当前目录、父目录或用户配置目录中发现配置文件。

也可以通过 UV_NO_CONFIG 环境变量设置。

--no-managed-python

禁用对 uv 管理的 Python 版本的使用 [环境变量: UV_NO_MANAGED_PYTHON=]

相反,uv 将在系统上搜索合适的 Python 版本。

--no-progress

隐藏所有进度输出 [环境变量: UV_NO_PROGRESS=]

例如,微调器或进度条。

--no-python-downloads

禁用 Python 的自动下载。

--offline

禁用网络访问 [环境变量: UV_OFFLINE=]

禁用时,uv 将仅使用本地缓存的数据和本地可用的文件。

--project project

在给定目录中发现项目。

所有 pyproject.tomluv.toml.python-version 文件都将通过从项目根目录向上遍历目录树来发现,项目的虚拟环境 (.venv) 也是如此。

其他命令行参数(例如相对路径)将相对于当前工作目录进行解析。

参见 --directory 以完全更改工作目录。

当在 uv pip 接口中使用时,此设置无效。

也可以通过 UV_PROJECT 环境变量设置。

--quiet, -q

使用安静输出。

重复此选项,例如 -qq,将启用静默模式,其中 uv 不会将任何输出写入标准输出。

--verbose, -v

使用详细输出。

您可以使用 RUST_LOG 环境变量配置细粒度日志记录。(https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html#directives

uv python

管理 Python 版本和安装

通常,uv 首先在虚拟环境中搜索 Python,无论该环境是活动的,还是位于当前工作目录或任何父目录的 .venv 目录中。如果不需要虚拟环境,uv 将搜索 Python 解释器。Python 解释器是通过在 PATH 环境变量中搜索 Python 可执行文件找到的。

在 Windows 上,还会搜索注册表中的 Python 可执行文件。

默认情况下,如果找不到版本,uv 将下载 Python。可以使用 --no-python-downloads 标志或 python-downloads 设置禁用此行为。

--python 选项允许请求不同的解释器。

支持以下 Python 版本请求格式

  • <version> 例如 3, 3.12, 3.12.3
  • <version-specifier> 例如 >=3.12,<3.13
  • <version><short-variant> (例如,3.13t, 3.12.0d)
  • <version>+<variant> (例如,3.13+freethreaded, 3.12.0+debug)
  • <implementation> 例如 cpythoncp
  • <implementation>@<version> 例如 [email protected]
  • <implementation><version> 例如 cpython3.12cp312
  • <implementation><version-specifier> 例如 cpython>=3.12,<3.13
  • <implementation>-<version>-<os>-<arch>-<libc> 例如 cpython-3.12.3-macos-aarch64-none

此外,通常可以使用以下格式请求特定的系统 Python 解释器

  • <executable-path> 例如 /opt/homebrew/bin/python3
  • <executable-name> 例如 mypython3
  • <install-dir> 例如 /some/environment/

当使用 --python 选项时,适用正常的发现规则,但会检查发现的解释器与请求的兼容性,例如,如果请求 pypy,uv 将首先检查虚拟环境是否包含 PyPy 解释器,然后检查路径中的每个可执行文件是否为 PyPy 解释器。

uv 支持发现 CPython、PyPy 和 GraalPy 解释器。不受支持的解释器将在发现期间被跳过。如果请求了不受支持的解释器实现,uv 将以错误退出。

用法

uv python [OPTIONS] <COMMAND>

命令

uv python list

列出可用的 Python 安装

uv python install

下载并安装 Python 版本

uv python upgrade

升级已安装的 Python 版本

uv python find

搜索 Python 安装

uv python pin

固定到特定 Python 版本

uv python dir

显示 uv Python 安装目录

uv python uninstall

卸载 Python 版本

uv python update-shell

确保 Python 可执行文件目录在 PATH

uv python list

列出可用的 Python 安装。

默认情况下,显示已安装的 Python 版本和每个受支持 Python 主要版本的最新可用补丁版本的下载信息。

使用 --managed-python 仅查看托管的 Python 版本。

使用 --no-managed-python 省略托管的 Python 版本。

使用 --all-versions 查看所有可用的补丁版本。

使用 --only-installed 省略可用下载。

用法

uv python list [OPTIONS] [REQUEST]

参数

REQUEST

用于过滤的 Python 请求。

请参阅 uv python 以查看支持的请求格式。

Options (选项)

--all-arches, --all_architectures

列出所有架构的 Python 下载。

默认情况下,仅显示当前架构的下载。

--all-platforms

列出所有平台的 Python 下载。

默认情况下,仅显示当前平台的下载。

--all-versions

列出所有 Python 版本,包括旧的补丁版本。

默认情况下,每个次要版本仅显示最新的补丁版本。

--allow-insecure-host, --trusted-host allow-insecure-host

允许与主机建立不安全连接。

可以多次提供。

期望接收主机名(例如 localhost)、主机-端口对(例如 localhost:8080)或 URL(例如 https://)。

警告:此列表中的主机不会根据系统的证书存储进行验证。仅在具有受信任来源的安全网络中使用 --allow-insecure-host,因为它会绕过 SSL 验证,可能会使您面临 MITM 攻击。

也可以通过 UV_INSECURE_HOST 环境变量设置。

--cache-dir cache-dir

缓存目录的路径。

默认在 macOS 和 Linux 上为 $XDG_CACHE_HOME/uv$HOME/.cache/uv,在 Windows 上为 %LOCALAPPDATA%\uv\cache

要查看缓存目录的位置,请运行 uv cache dir

也可以通过 UV_CACHE_DIR 环境变量设置。

--color color-choice

控制输出中颜色的使用。

默认情况下,uv 在写入终端时会自动检测对颜色的支持。

可选值

  • auto:仅在输出到支持颜色的终端或 TTY 时启用彩色输出
  • always:无论检测到的环境如何,都启用彩色输出
  • never:禁用彩色输出
--config-file config-file

用于配置的 uv.toml 文件路径。

虽然 uv 配置可以包含在 pyproject.toml 文件中,但在这种上下文下是不允许的。

也可以通过 UV_CONFIG_FILE 环境变量设置。

--directory directory

在运行命令之前切换到指定目录。

相对路径将以给定目录为基础进行解析。

参见 --project 仅更改项目根目录。

也可以通过 UV_WORKING_DIR 环境变量设置。

--help, -h

显示此命令的简明帮助信息

--managed-python

要求使用 uv 管理的 Python 版本 [环境变量: UV_MANAGED_PYTHON=]

默认情况下,uv 优先使用其管理的 Python 版本。但是,如果未安装 uv 管理的 Python,它将使用系统 Python 版本。此选项将禁用系统 Python 版本的调用。

--native-tls

是否从平台的原生存储中加载 TLS 证书 [环境变量: UV_NATIVE_TLS=]

默认情况下,uv 从绑定的 webpki-roots crate 中加载证书。webpki-roots 是一组来自 Mozilla 的可靠信任根,在 uv 中包含它们可提高可移植性和性能(特别是在 macOS 上)。

然而,在某些情况下,您可能希望使用平台的原生证书存储,特别是当您依赖于系统证书存储中包含的公司信任根(例如强制代理)时。

--no-cache, --no-cache-dir, -n

避免从缓存中读取或写入缓存,而是在操作期间使用临时目录

也可以通过 UV_NO_CACHE 环境变量设置。

--no-config

避免发现配置文件(pyproject.tomluv.toml)。

通常,会在当前目录、父目录或用户配置目录中发现配置文件。

也可以通过 UV_NO_CONFIG 环境变量设置。

--no-managed-python

禁用对 uv 管理的 Python 版本的使用 [环境变量: UV_NO_MANAGED_PYTHON=]

相反,uv 将在系统上搜索合适的 Python 版本。

--no-progress

隐藏所有进度输出 [环境变量: UV_NO_PROGRESS=]

例如,微调器或进度条。

--no-python-downloads

禁用 Python 的自动下载。

--offline

禁用网络访问 [环境变量: UV_OFFLINE=]

禁用时,uv 将仅使用本地缓存的数据和本地可用的文件。

--only-downloads

仅显示可用的 Python 下载。

默认情况下,显示已安装的发行版和当前平台的可用下载。

--only-installed

仅显示已安装的 Python 版本。

默认情况下,显示已安装的发行版和当前平台的可用下载。

--output-format output-format

选择输出格式

[默认: text]

可选值

  • text: 纯文本(供人类阅读)
  • json: JSON(供计算机阅读)
--project project

在给定目录中发现项目。

所有 pyproject.tomluv.toml.python-version 文件都将通过从项目根目录向上遍历目录树来发现,项目的虚拟环境 (.venv) 也是如此。

其他命令行参数(例如相对路径)将相对于当前工作目录进行解析。

参见 --directory 以完全更改工作目录。

当在 uv pip 接口中使用时,此设置无效。

也可以通过 UV_PROJECT 环境变量设置。

--python-downloads-json-url python-downloads-json-url

指向自定义 Python 安装 JSON 的 URL

--quiet, -q

使用安静输出。

重复此选项,例如 -qq,将启用静默模式,其中 uv 不会将任何输出写入标准输出。

--show-urls

显示可用 Python 下载的 URL。

默认情况下,这些显示为 <download available>

--verbose, -v

使用详细输出。

您可以使用 RUST_LOG 环境变量配置细粒度日志记录。(https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html#directives

uv python install

下载并安装 Python 版本。

支持 CPython 和 PyPy。CPython 发行版从 Astral python-build-standalone 项目下载。PyPy 发行版从 python.org 下载。可用的 Python 版本随每个 uv 版本捆绑。要安装新的 Python 版本,您可能需要升级 uv。

Python 版本安装到 uv Python 目录中,可以通过 uv python dir 检索。

默认情况下,Python 可执行文件会添加到一个带有次要版本后缀的路径目录中,例如 python3.13。要安装 python3python,请使用 --default 标志。使用 uv python dir --bin 查看目标目录。

可以请求多个 Python 版本。

请参阅 uv help python 查看支持的请求格式。

用法

uv python install [OPTIONS] [TARGETS]...

参数

TARGETS

要安装的 Python 版本。

如果未提供,请求的 Python 版本将从 UV_PYTHON 环境变量读取,然后是 .python-versions.python-version 文件。如果以上都不存在,uv 将检查它是否安装了任何 Python 版本。如果没有,它将安装 Python 的最新稳定版本。

请参阅 uv python 以查看支持的请求格式。

Options (选项)

--allow-insecure-host, --trusted-host allow-insecure-host

允许与主机建立不安全连接。

可以多次提供。

期望接收主机名(例如 localhost)、主机-端口对(例如 localhost:8080)或 URL(例如 https://)。

警告:此列表中的主机不会根据系统的证书存储进行验证。仅在具有受信任来源的安全网络中使用 --allow-insecure-host,因为它会绕过 SSL 验证,可能会使您面临 MITM 攻击。

也可以通过 UV_INSECURE_HOST 环境变量设置。

--cache-dir cache-dir

缓存目录的路径。

默认在 macOS 和 Linux 上为 $XDG_CACHE_HOME/uv$HOME/.cache/uv,在 Windows 上为 %LOCALAPPDATA%\uv\cache

要查看缓存目录的位置,请运行 uv cache dir

也可以通过 UV_CACHE_DIR 环境变量设置。

--color color-choice

控制输出中颜色的使用。

默认情况下,uv 在写入终端时会自动检测对颜色的支持。

可选值

  • auto:仅在输出到支持颜色的终端或 TTY 时启用彩色输出
  • always:无论检测到的环境如何,都启用彩色输出
  • never:禁用彩色输出
--compile-bytecode, --compile

安装后将 Python 标准库编译为字节码。

默认情况下,uv 不会将 Python (.py) 文件编译为字节码 (__pycache__/*.pyc);相反,编译是在第一次导入模块时延迟执行的。对于对启动时间有要求的用例(例如 CLI 应用程序和 Docker 容器),可以启用此选项,以牺牲较长的安装时间和额外的磁盘空间来换取更快的启动时间。

启用后,uv 将处理 Python 版本的 stdlib 目录。它将忽略任何编译错误。

也可以通过 UV_COMPILE_BYTECODE 环境变量设置。

--config-file config-file

用于配置的 uv.toml 文件路径。

虽然 uv 配置可以包含在 pyproject.toml 文件中,但在这种上下文下是不允许的。

也可以通过 UV_CONFIG_FILE 环境变量设置。

--default

用作默认 Python 版本。

默认情况下,仅安装 python{major}.{minor} 可执行文件,例如 python3.10。当使用 --default 标志时,还会安装 python{major}(例如 python3)和 python 可执行文件。

替代的 Python 变体仍会包含其标签。例如,在安装 3.13+freethreaded 时使用 --default,将包含 python3tpythont,而不是 python3python

如果请求了多个 Python 版本,uv 将报错退出。

--directory directory

在运行命令之前切换到指定目录。

相对路径将以给定目录为基础进行解析。

参见 --project 仅更改项目根目录。

也可以通过 UV_WORKING_DIR 环境变量设置。

--force, -f

安装过程中替换现有的 Python 可执行文件。

默认情况下,uv 会拒绝替换非其管理的可执行文件。

隐含 --reinstall

--help, -h

显示此命令的简明帮助信息

--install-dir, -i install-dir

存储 Python 安装的目录。

如果提供了此选项,后续操作需要设置 UV_PYTHON_INSTALL_DIR,以便 uv 能够发现该 Python 安装。

请参阅 uv python dir 以查看当前的 Python 安装目录。默认为 ~/.local/share/uv/python

也可以通过 UV_PYTHON_INSTALL_DIR 环境变量进行设置。

--managed-python

要求使用 uv 管理的 Python 版本 [环境变量: UV_MANAGED_PYTHON=]

默认情况下,uv 优先使用其管理的 Python 版本。但是,如果未安装 uv 管理的 Python,它将使用系统 Python 版本。此选项将禁用系统 Python 版本的调用。

--mirror mirror

设置用于下载 Python 安装包的源 URL。

提供的 URL 将替换 https://github.com/astral-sh/python-build-standalone/releases/download,例如替换在 https://github.com/astral-sh/python-build-standalone/releases/download/20240713/cpython-3.12.4%2B20240713-aarch64-apple-darwin-install_only.tar.gz 中。

可以使用 file:// URL 方案从本地目录读取分发包。

--native-tls

是否从平台的原生存储中加载 TLS 证书 [环境变量: UV_NATIVE_TLS=]

默认情况下,uv 从绑定的 webpki-roots crate 中加载证书。webpki-roots 是一组来自 Mozilla 的可靠信任根,在 uv 中包含它们可提高可移植性和性能(特别是在 macOS 上)。

然而,在某些情况下,您可能希望使用平台的原生证书存储,特别是当您依赖于系统证书存储中包含的公司信任根(例如强制代理)时。

--no-bin

不要将 Python 可执行文件安装到 bin 目录中。

也可以通过 UV_PYTHON_INSTALL_BIN=0 进行设置。

--no-cache, --no-cache-dir, -n

避免从缓存中读取或写入缓存,而是在操作期间使用临时目录

也可以通过 UV_NO_CACHE 环境变量设置。

--no-config

避免发现配置文件(pyproject.tomluv.toml)。

通常,会在当前目录、父目录或用户配置目录中发现配置文件。

也可以通过 UV_NO_CONFIG 环境变量设置。

--no-managed-python

禁用对 uv 管理的 Python 版本的使用 [环境变量: UV_NO_MANAGED_PYTHON=]

相反,uv 将在系统上搜索合适的 Python 版本。

--no-progress

隐藏所有进度输出 [环境变量: UV_NO_PROGRESS=]

例如,微调器或进度条。

--no-python-downloads

禁用 Python 的自动下载。

--no-registry

不要在 Windows 注册表中注册此 Python 安装。

也可以通过 UV_PYTHON_INSTALL_REGISTRY=0 进行设置。

--offline

禁用网络访问 [环境变量: UV_OFFLINE=]

禁用时,uv 将仅使用本地缓存的数据和本地可用的文件。

--project project

在给定目录中发现项目。

所有 pyproject.tomluv.toml.python-version 文件都将通过从项目根目录向上遍历目录树来发现,项目的虚拟环境 (.venv) 也是如此。

其他命令行参数(例如相对路径)将相对于当前工作目录进行解析。

参见 --directory 以完全更改工作目录。

当在 uv pip 接口中使用时,此设置无效。

也可以通过 UV_PROJECT 环境变量设置。

--pypy-mirror pypy-mirror

设置用于下载 PyPy 安装包的源 URL。

提供的 URL 将替换 https://downloads.python.org/pypy,例如替换在 https://downloads.python.org/pypy/pypy3.8-v7.3.7-osx64.tar.bz2 中。

可以使用 file:// URL 方案从本地目录读取分发包。

--python-downloads-json-url python-downloads-json-url

指向自定义 Python 安装 JSON 的 URL

--quiet, -q

使用安静输出。

重复此选项,例如 -qq,将启用静默模式,其中 uv 不会将任何输出写入标准输出。

--reinstall, -r

如果已安装,则重新安装请求的 Python 版本。

默认情况下,如果版本已安装,uv 将成功退出。

--upgrade, -U

将现有的 Python 安装升级到最新的补丁版本。

默认情况下,uv 不会将已安装的 Python 版本升级到较新的补丁版本。使用 --upgrade,uv 将会升级到指定次要版本下最新的可用补丁版本。

如果请求的版本尚未安装,uv 将会进行安装。

此选项仅支持次要版本请求,例如 3.12;如果请求补丁版本(例如 3.12.2),uv 将报错退出。

--verbose, -v

使用详细输出。

您可以使用 RUST_LOG 环境变量配置细粒度日志记录。(https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html#directives

uv python upgrade

升级已安装的 Python 版本。

将版本升级到最新的支持补丁版本。需要开启 python-upgrade 预览功能。

可以提供目标 Python 次要版本进行升级,例如 3.13。可以提供多个版本以执行多次升级。

如果不提供目标版本,uv 将升级所有受管理的 CPython 版本。

升级过程中,uv 不会卸载旧的补丁版本。

执行升级后,uv 创建的虚拟环境将自动使用新版本。但是,如果虚拟环境是在添加升级功能之前创建的,它将继续使用旧的 Python 版本;要启用升级,必须重新创建环境。

对于 PyPy 等替代实现,暂不支持升级。

用法

uv python upgrade [OPTIONS] [TARGETS]...

参数

TARGETS

要升级的 Python 次要版本。

如果不提供目标版本,uv 将升级所有受管理的 CPython 版本。

Options (选项)

--allow-insecure-host, --trusted-host allow-insecure-host

允许与主机建立不安全连接。

可以多次提供。

期望接收主机名(例如 localhost)、主机-端口对(例如 localhost:8080)或 URL(例如 https://)。

警告:此列表中的主机不会根据系统的证书存储进行验证。仅在具有受信任来源的安全网络中使用 --allow-insecure-host,因为它会绕过 SSL 验证,可能会使您面临 MITM 攻击。

也可以通过 UV_INSECURE_HOST 环境变量设置。

--cache-dir cache-dir

缓存目录的路径。

默认在 macOS 和 Linux 上为 $XDG_CACHE_HOME/uv$HOME/.cache/uv,在 Windows 上为 %LOCALAPPDATA%\uv\cache

要查看缓存目录的位置,请运行 uv cache dir

也可以通过 UV_CACHE_DIR 环境变量设置。

--color color-choice

控制输出中颜色的使用。

默认情况下,uv 在写入终端时会自动检测对颜色的支持。

可选值

  • auto:仅在输出到支持颜色的终端或 TTY 时启用彩色输出
  • always:无论检测到的环境如何,都启用彩色输出
  • never:禁用彩色输出
--compile-bytecode, --compile

安装后将 Python 标准库编译为字节码。

默认情况下,uv 不会将 Python (.py) 文件编译为字节码 (__pycache__/*.pyc);相反,编译是在第一次导入模块时延迟执行的。对于对启动时间有要求的用例(例如 CLI 应用程序和 Docker 容器),可以启用此选项,以牺牲较长的安装时间和额外的磁盘空间来换取更快的启动时间。

启用后,uv 将处理 Python 版本的 stdlib 目录。它将忽略任何编译错误。

也可以通过 UV_COMPILE_BYTECODE 环境变量设置。

--config-file config-file

用于配置的 uv.toml 文件路径。

虽然 uv 配置可以包含在 pyproject.toml 文件中,但在这种上下文下是不允许的。

也可以通过 UV_CONFIG_FILE 环境变量设置。

--directory directory

在运行命令之前切换到指定目录。

相对路径将以给定目录为基础进行解析。

参见 --project 仅更改项目根目录。

也可以通过 UV_WORKING_DIR 环境变量设置。

--help, -h

显示此命令的简明帮助信息

--install-dir, -i install-dir

存储 Python 安装的目录。

如果提供了此选项,后续操作需要设置 UV_PYTHON_INSTALL_DIR,以便 uv 能够发现该 Python 安装。

请参阅 uv python dir 以查看当前的 Python 安装目录。默认为 ~/.local/share/uv/python

也可以通过 UV_PYTHON_INSTALL_DIR 环境变量进行设置。

--managed-python

要求使用 uv 管理的 Python 版本 [环境变量: UV_MANAGED_PYTHON=]

默认情况下,uv 优先使用其管理的 Python 版本。但是,如果未安装 uv 管理的 Python,它将使用系统 Python 版本。此选项将禁用系统 Python 版本的调用。

--mirror mirror

设置用于下载 Python 安装包的源 URL。

提供的 URL 将替换 https://github.com/astral-sh/python-build-standalone/releases/download,例如替换在 https://github.com/astral-sh/python-build-standalone/releases/download/20240713/cpython-3.12.4%2B20240713-aarch64-apple-darwin-install_only.tar.gz 中。

可以使用 file:// URL 方案从本地目录读取分发包。

--native-tls

是否从平台的原生存储中加载 TLS 证书 [环境变量: UV_NATIVE_TLS=]

默认情况下,uv 从绑定的 webpki-roots crate 中加载证书。webpki-roots 是一组来自 Mozilla 的可靠信任根,在 uv 中包含它们可提高可移植性和性能(特别是在 macOS 上)。

然而,在某些情况下,您可能希望使用平台的原生证书存储,特别是当您依赖于系统证书存储中包含的公司信任根(例如强制代理)时。

--no-cache, --no-cache-dir, -n

避免从缓存中读取或写入缓存,而是在操作期间使用临时目录

也可以通过 UV_NO_CACHE 环境变量设置。

--no-config

避免发现配置文件(pyproject.tomluv.toml)。

通常,会在当前目录、父目录或用户配置目录中发现配置文件。

也可以通过 UV_NO_CONFIG 环境变量设置。

--no-managed-python

禁用对 uv 管理的 Python 版本的使用 [环境变量: UV_NO_MANAGED_PYTHON=]

相反,uv 将在系统上搜索合适的 Python 版本。

--no-progress

隐藏所有进度输出 [环境变量: UV_NO_PROGRESS=]

例如,微调器或进度条。

--no-python-downloads

禁用 Python 的自动下载。

--offline

禁用网络访问 [环境变量: UV_OFFLINE=]

禁用时,uv 将仅使用本地缓存的数据和本地可用的文件。

--project project

在给定目录中发现项目。

所有 pyproject.tomluv.toml.python-version 文件都将通过从项目根目录向上遍历目录树来发现,项目的虚拟环境 (.venv) 也是如此。

其他命令行参数(例如相对路径)将相对于当前工作目录进行解析。

参见 --directory 以完全更改工作目录。

当在 uv pip 接口中使用时,此设置无效。

也可以通过 UV_PROJECT 环境变量设置。

--pypy-mirror pypy-mirror

设置用于下载 PyPy 安装包的源 URL。

提供的 URL 将替换 https://downloads.python.org/pypy,例如替换在 https://downloads.python.org/pypy/pypy3.8-v7.3.7-osx64.tar.bz2 中。

可以使用 file:// URL 方案从本地目录读取分发包。

--python-downloads-json-url python-downloads-json-url

指向自定义 Python 安装 JSON 的 URL

--quiet, -q

使用安静输出。

重复此选项,例如 -qq,将启用静默模式,其中 uv 不会将任何输出写入标准输出。

--reinstall, -r

如果已安装,则重新安装最新的 Python 补丁。

默认情况下,如果最新的补丁已安装,uv 将成功退出。

--verbose, -v

使用详细输出。

您可以使用 RUST_LOG 环境变量配置细粒度日志记录。(https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html#directives

uv python find

搜索 Python 安装。

显示 Python 可执行文件的路径。

请参阅 uv help python 以查看支持的请求格式及发现行为的详细信息。

用法

uv python find [OPTIONS] [REQUEST]

参数

REQUEST

Python 请求。

请参阅 uv python 以查看支持的请求格式。

Options (选项)

--allow-insecure-host, --trusted-host allow-insecure-host

允许与主机建立不安全连接。

可以多次提供。

期望接收主机名(例如 localhost)、主机-端口对(例如 localhost:8080)或 URL(例如 https://)。

警告:此列表中的主机不会根据系统的证书存储进行验证。仅在具有受信任来源的安全网络中使用 --allow-insecure-host,因为它会绕过 SSL 验证,可能会使您面临 MITM 攻击。

也可以通过 UV_INSECURE_HOST 环境变量设置。

--cache-dir cache-dir

缓存目录的路径。

默认在 macOS 和 Linux 上为 $XDG_CACHE_HOME/uv$HOME/.cache/uv,在 Windows 上为 %LOCALAPPDATA%\uv\cache

要查看缓存目录的位置,请运行 uv cache dir

也可以通过 UV_CACHE_DIR 环境变量设置。

--color color-choice

控制输出中颜色的使用。

默认情况下,uv 在写入终端时会自动检测对颜色的支持。

可选值

  • auto:仅在输出到支持颜色的终端或 TTY 时启用彩色输出
  • always:无论检测到的环境如何,都启用彩色输出
  • never:禁用彩色输出
--config-file config-file

用于配置的 uv.toml 文件路径。

虽然 uv 配置可以包含在 pyproject.toml 文件中,但在这种上下文下是不允许的。

也可以通过 UV_CONFIG_FILE 环境变量设置。

--directory directory

在运行命令之前切换到指定目录。

相对路径将以给定目录为基础进行解析。

参见 --project 仅更改项目根目录。

也可以通过 UV_WORKING_DIR 环境变量设置。

--help, -h

显示此命令的简明帮助信息

--managed-python

要求使用 uv 管理的 Python 版本 [环境变量: UV_MANAGED_PYTHON=]

默认情况下,uv 优先使用其管理的 Python 版本。但是,如果未安装 uv 管理的 Python,它将使用系统 Python 版本。此选项将禁用系统 Python 版本的调用。

--native-tls

是否从平台的原生存储中加载 TLS 证书 [环境变量: UV_NATIVE_TLS=]

默认情况下,uv 从绑定的 webpki-roots crate 中加载证书。webpki-roots 是一组来自 Mozilla 的可靠信任根,在 uv 中包含它们可提高可移植性和性能(特别是在 macOS 上)。

然而,在某些情况下,您可能希望使用平台的原生证书存储,特别是当您依赖于系统证书存储中包含的公司信任根(例如强制代理)时。

--no-cache, --no-cache-dir, -n

避免从缓存中读取或写入缓存,而是在操作期间使用临时目录

也可以通过 UV_NO_CACHE 环境变量设置。

--no-config

避免发现配置文件(pyproject.tomluv.toml)。

通常,会在当前目录、父目录或用户配置目录中发现配置文件。

也可以通过 UV_NO_CONFIG 环境变量设置。

--no-managed-python

禁用对 uv 管理的 Python 版本的使用 [环境变量: UV_NO_MANAGED_PYTHON=]

相反,uv 将在系统上搜索合适的 Python 版本。

--no-progress

隐藏所有进度输出 [环境变量: UV_NO_PROGRESS=]

例如,微调器或进度条。

--no-project, --no_workspace

避免发现项目或工作区。

否则,当未提供请求时,将使用当前目录或父目录中项目的 Python 要求。

--no-python-downloads

禁用 Python 的自动下载。

--offline

禁用网络访问 [环境变量: UV_OFFLINE=]

禁用时,uv 将仅使用本地缓存的数据和本地可用的文件。

--project project

在给定目录中发现项目。

所有 pyproject.tomluv.toml.python-version 文件都将通过从项目根目录向上遍历目录树来发现,项目的虚拟环境 (.venv) 也是如此。

其他命令行参数(例如相对路径)将相对于当前工作目录进行解析。

参见 --directory 以完全更改工作目录。

当在 uv pip 接口中使用时,此设置无效。

也可以通过 UV_PROJECT 环境变量设置。

--python-downloads-json-url python-downloads-json-url

指向自定义 Python 安装 JSON 的 URL

--quiet, -q

使用安静输出。

重复此选项,例如 -qq,将启用静默模式,其中 uv 不会将任何输出写入标准输出。

解析输出路径中的符号链接。

启用后,输出路径将被规范化,并解析任何符号链接。

--script script

为 Python 脚本查找环境,而不是查找当前项目

--show-version

显示将要使用的 Python 版本,而不是解释器路径

--system

仅查找系统 Python 解释器。

默认情况下,uv 将报告它会使用的第一个 Python 解释器,包括处于活跃状态的虚拟环境中的解释器,或当前工作目录及其父目录中的虚拟环境。

--system 选项指示 uv 跳过虚拟环境 Python 解释器,并将搜索限制在系统路径中。

也可以通过 UV_SYSTEM_PYTHON 环境变量进行设置。

--verbose, -v

使用详细输出。

您可以使用 RUST_LOG 环境变量配置细粒度日志记录。(https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html#directives

uv python pin

固定到特定的 Python 版本。

将固定的 Python 版本写入 .python-version 文件,其他 uv 命令将使用该文件确定所需的 Python 版本。

如果不提供版本,uv 将查找现有的 .python-version 文件并显示当前固定的版本。如果没有找到 .python-version 文件,uv 将报错退出。

请参阅 uv help python 查看支持的请求格式。

用法

uv python pin [OPTIONS] [REQUEST]

参数

REQUEST

Python 版本请求。

uv 支持比其他读取 .python-version 文件(如 pyenv)的工具更多的格式。如果需要与这些工具兼容,请仅使用版本号,而不要使用诸如 [email protected] 这样复杂的请求。

如果不提供请求,将显示当前固定的版本。

请参阅 uv python 以查看支持的请求格式。

Options (选项)

--allow-insecure-host, --trusted-host allow-insecure-host

允许与主机建立不安全连接。

可以多次提供。

期望接收主机名(例如 localhost)、主机-端口对(例如 localhost:8080)或 URL(例如 https://)。

警告:此列表中的主机不会根据系统的证书存储进行验证。仅在具有受信任来源的安全网络中使用 --allow-insecure-host,因为它会绕过 SSL 验证,可能会使您面临 MITM 攻击。

也可以通过 UV_INSECURE_HOST 环境变量设置。

--cache-dir cache-dir

缓存目录的路径。

默认在 macOS 和 Linux 上为 $XDG_CACHE_HOME/uv$HOME/.cache/uv,在 Windows 上为 %LOCALAPPDATA%\uv\cache

要查看缓存目录的位置,请运行 uv cache dir

也可以通过 UV_CACHE_DIR 环境变量设置。

--color color-choice

控制输出中颜色的使用。

默认情况下,uv 在写入终端时会自动检测对颜色的支持。

可选值

  • auto:仅在输出到支持颜色的终端或 TTY 时启用彩色输出
  • always:无论检测到的环境如何,都启用彩色输出
  • never:禁用彩色输出
--config-file config-file

用于配置的 uv.toml 文件路径。

虽然 uv 配置可以包含在 pyproject.toml 文件中,但在这种上下文下是不允许的。

也可以通过 UV_CONFIG_FILE 环境变量设置。

--directory directory

在运行命令之前切换到指定目录。

相对路径将以给定目录为基础进行解析。

参见 --project 仅更改项目根目录。

也可以通过 UV_WORKING_DIR 环境变量设置。

--global

更新全局 Python 版本固定。

将固定的 Python 版本写入 uv 用户配置目录下的 .python-version 文件:Linux/macOS 上为 XDG_CONFIG_HOME/uv,Windows 上为 %APPDATA%/uv

当在工作目录或父目录中未找到本地 Python 版本固定时,将使用此版本。

--help, -h

显示此命令的简明帮助信息

--managed-python

要求使用 uv 管理的 Python 版本 [环境变量: UV_MANAGED_PYTHON=]

默认情况下,uv 优先使用其管理的 Python 版本。但是,如果未安装 uv 管理的 Python,它将使用系统 Python 版本。此选项将禁用系统 Python 版本的调用。

--native-tls

是否从平台的原生存储中加载 TLS 证书 [环境变量: UV_NATIVE_TLS=]

默认情况下,uv 从绑定的 webpki-roots crate 中加载证书。webpki-roots 是一组来自 Mozilla 的可靠信任根,在 uv 中包含它们可提高可移植性和性能(特别是在 macOS 上)。

然而,在某些情况下,您可能希望使用平台的原生证书存储,特别是当您依赖于系统证书存储中包含的公司信任根(例如强制代理)时。

--no-cache, --no-cache-dir, -n

避免从缓存中读取或写入缓存,而是在操作期间使用临时目录

也可以通过 UV_NO_CACHE 环境变量设置。

--no-config

避免发现配置文件(pyproject.tomluv.toml)。

通常,会在当前目录、父目录或用户配置目录中发现配置文件。

也可以通过 UV_NO_CONFIG 环境变量设置。

--no-managed-python

禁用对 uv 管理的 Python 版本的使用 [环境变量: UV_NO_MANAGED_PYTHON=]

相反,uv 将在系统上搜索合适的 Python 版本。

--no-progress

隐藏所有进度输出 [环境变量: UV_NO_PROGRESS=]

例如,微调器或进度条。

--no-project, --no-workspace

避免验证 Python 固定是否与项目或工作区兼容。

默认情况下,会在当前目录或任何父目录中发现项目或工作区。如果发现工作区,将根据工作区的 requires-python 约束来验证 Python 固定。

--no-python-downloads

禁用 Python 的自动下载。

--offline

禁用网络访问 [环境变量: UV_OFFLINE=]

禁用时,uv 将仅使用本地缓存的数据和本地可用的文件。

--project project

在给定目录中发现项目。

所有 pyproject.tomluv.toml.python-version 文件都将通过从项目根目录向上遍历目录树来发现,项目的虚拟环境 (.venv) 也是如此。

其他命令行参数(例如相对路径)将相对于当前工作目录进行解析。

参见 --directory 以完全更改工作目录。

当在 uv pip 接口中使用时,此设置无效。

也可以通过 UV_PROJECT 环境变量设置。

--quiet, -q

使用安静输出。

重复此选项,例如 -qq,将启用静默模式,其中 uv 不会将任何输出写入标准输出。

--resolved

写入已解析的 Python 解释器路径,而不是请求。

确保使用完全相同的解释器。

.python-version 文件提交到版本控制时,通常不建议使用此选项。

--rm

删除 Python 版本固定

--verbose, -v

使用详细输出。

您可以使用 RUST_LOG 环境变量配置细粒度日志记录。(https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html#directives

uv python dir

显示 uv Python 安装目录。

默认情况下,Python 安装包存储在 uv 数据目录中,在 Unix 上为 $XDG_DATA_HOME/uv/python$HOME/.local/share/uv/python,在 Windows 上为 %APPDATA%\uv\data\python

可以通过 $UV_PYTHON_INSTALL_DIR 覆盖 Python 安装目录。

要查看 uv 安装 Python 可执行文件的目录,请使用 --bin 标志。可以通过 $UV_PYTHON_BIN_DIR 覆盖 Python 可执行文件目录。请注意,只有在启用预览模式时才会安装 Python 可执行文件。

用法

uv python dir [OPTIONS]

Options (选项)

--allow-insecure-host, --trusted-host allow-insecure-host

允许与主机建立不安全连接。

可以多次提供。

期望接收主机名(例如 localhost)、主机-端口对(例如 localhost:8080)或 URL(例如 https://)。

警告:此列表中的主机不会根据系统的证书存储进行验证。仅在具有受信任来源的安全网络中使用 --allow-insecure-host,因为它会绕过 SSL 验证,可能会使您面临 MITM 攻击。

也可以通过 UV_INSECURE_HOST 环境变量设置。

--bin

显示 uv python 将安装 Python 可执行文件的目录。

请注意,此目录仅在启用预览模式安装 Python 时使用。

Python 可执行文件目录是根据 XDG 标准确定的,并按以下优先级从环境变量中获取

  • $UV_PYTHON_BIN_DIR
  • $XDG_BIN_HOME
  • $XDG_DATA_HOME/../bin
  • $HOME/.local/bin
--cache-dir cache-dir

缓存目录的路径。

默认在 macOS 和 Linux 上为 $XDG_CACHE_HOME/uv$HOME/.cache/uv,在 Windows 上为 %LOCALAPPDATA%\uv\cache

要查看缓存目录的位置,请运行 uv cache dir

也可以通过 UV_CACHE_DIR 环境变量设置。

--color color-choice

控制输出中颜色的使用。

默认情况下,uv 在写入终端时会自动检测对颜色的支持。

可选值

  • auto:仅在输出到支持颜色的终端或 TTY 时启用彩色输出
  • always:无论检测到的环境如何,都启用彩色输出
  • never:禁用彩色输出
--config-file config-file

用于配置的 uv.toml 文件路径。

虽然 uv 配置可以包含在 pyproject.toml 文件中,但在这种上下文下是不允许的。

也可以通过 UV_CONFIG_FILE 环境变量设置。

--directory directory

在运行命令之前切换到指定目录。

相对路径将以给定目录为基础进行解析。

参见 --project 仅更改项目根目录。

也可以通过 UV_WORKING_DIR 环境变量设置。

--help, -h

显示此命令的简明帮助信息

--managed-python

要求使用 uv 管理的 Python 版本 [环境变量: UV_MANAGED_PYTHON=]

默认情况下,uv 优先使用其管理的 Python 版本。但是,如果未安装 uv 管理的 Python,它将使用系统 Python 版本。此选项将禁用系统 Python 版本的调用。

--native-tls

是否从平台的原生存储中加载 TLS 证书 [环境变量: UV_NATIVE_TLS=]

默认情况下,uv 从绑定的 webpki-roots crate 中加载证书。webpki-roots 是一组来自 Mozilla 的可靠信任根,在 uv 中包含它们可提高可移植性和性能(特别是在 macOS 上)。

然而,在某些情况下,您可能希望使用平台的原生证书存储,特别是当您依赖于系统证书存储中包含的公司信任根(例如强制代理)时。

--no-cache, --no-cache-dir, -n

避免从缓存中读取或写入缓存,而是在操作期间使用临时目录

也可以通过 UV_NO_CACHE 环境变量设置。

--no-config

避免发现配置文件(pyproject.tomluv.toml)。

通常,会在当前目录、父目录或用户配置目录中发现配置文件。

也可以通过 UV_NO_CONFIG 环境变量设置。

--no-managed-python

禁用对 uv 管理的 Python 版本的使用 [环境变量: UV_NO_MANAGED_PYTHON=]

相反,uv 将在系统上搜索合适的 Python 版本。

--no-progress

隐藏所有进度输出 [环境变量: UV_NO_PROGRESS=]

例如,微调器或进度条。

--no-python-downloads

禁用 Python 的自动下载。

--offline

禁用网络访问 [环境变量: UV_OFFLINE=]

禁用时,uv 将仅使用本地缓存的数据和本地可用的文件。

--project project

在给定目录中发现项目。

所有 pyproject.tomluv.toml.python-version 文件都将通过从项目根目录向上遍历目录树来发现,项目的虚拟环境 (.venv) 也是如此。

其他命令行参数(例如相对路径)将相对于当前工作目录进行解析。

参见 --directory 以完全更改工作目录。

当在 uv pip 接口中使用时,此设置无效。

也可以通过 UV_PROJECT 环境变量设置。

--quiet, -q

使用安静输出。

重复此选项,例如 -qq,将启用静默模式,其中 uv 不会将任何输出写入标准输出。

--verbose, -v

使用详细输出。

您可以使用 RUST_LOG 环境变量配置细粒度日志记录。(https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html#directives

uv python uninstall

卸载 Python 版本

用法

uv python uninstall [OPTIONS] <TARGETS>...

参数

TARGETS

要卸载的 Python 版本。

请参阅 uv python 以查看支持的请求格式。

Options (选项)

--all

卸载所有受管理的 Python 版本

--allow-insecure-host, --trusted-host allow-insecure-host

允许与主机建立不安全连接。

可以多次提供。

期望接收主机名(例如 localhost)、主机-端口对(例如 localhost:8080)或 URL(例如 https://)。

警告:此列表中的主机不会根据系统的证书存储进行验证。仅在具有受信任来源的安全网络中使用 --allow-insecure-host,因为它会绕过 SSL 验证,可能会使您面临 MITM 攻击。

也可以通过 UV_INSECURE_HOST 环境变量设置。

--cache-dir cache-dir

缓存目录的路径。

默认在 macOS 和 Linux 上为 $XDG_CACHE_HOME/uv$HOME/.cache/uv,在 Windows 上为 %LOCALAPPDATA%\uv\cache

要查看缓存目录的位置,请运行 uv cache dir

也可以通过 UV_CACHE_DIR 环境变量设置。

--color color-choice

控制输出中颜色的使用。

默认情况下,uv 在写入终端时会自动检测对颜色的支持。

可选值

  • auto:仅在输出到支持颜色的终端或 TTY 时启用彩色输出
  • always:无论检测到的环境如何,都启用彩色输出
  • never:禁用彩色输出
--config-file config-file

用于配置的 uv.toml 文件路径。

虽然 uv 配置可以包含在 pyproject.toml 文件中,但在这种上下文下是不允许的。

也可以通过 UV_CONFIG_FILE 环境变量设置。

--directory directory

在运行命令之前切换到指定目录。

相对路径将以给定目录为基础进行解析。

参见 --project 仅更改项目根目录。

也可以通过 UV_WORKING_DIR 环境变量设置。

--help, -h

显示此命令的简明帮助信息

--install-dir, -i install-dir

Python 的安装目录

也可以通过 UV_PYTHON_INSTALL_DIR 环境变量进行设置。

--managed-python

要求使用 uv 管理的 Python 版本 [环境变量: UV_MANAGED_PYTHON=]

默认情况下,uv 优先使用其管理的 Python 版本。但是,如果未安装 uv 管理的 Python,它将使用系统 Python 版本。此选项将禁用系统 Python 版本的调用。

--native-tls

是否从平台的原生存储中加载 TLS 证书 [环境变量: UV_NATIVE_TLS=]

默认情况下,uv 从绑定的 webpki-roots crate 中加载证书。webpki-roots 是一组来自 Mozilla 的可靠信任根,在 uv 中包含它们可提高可移植性和性能(特别是在 macOS 上)。

然而,在某些情况下,您可能希望使用平台的原生证书存储,特别是当您依赖于系统证书存储中包含的公司信任根(例如强制代理)时。

--no-cache, --no-cache-dir, -n

避免从缓存中读取或写入缓存,而是在操作期间使用临时目录

也可以通过 UV_NO_CACHE 环境变量设置。

--no-config

避免发现配置文件(pyproject.tomluv.toml)。

通常,会在当前目录、父目录或用户配置目录中发现配置文件。

也可以通过 UV_NO_CONFIG 环境变量设置。

--no-managed-python

禁用对 uv 管理的 Python 版本的使用 [环境变量: UV_NO_MANAGED_PYTHON=]

相反,uv 将在系统上搜索合适的 Python 版本。

--no-progress

隐藏所有进度输出 [环境变量: UV_NO_PROGRESS=]

例如,微调器或进度条。

--no-python-downloads

禁用 Python 的自动下载。

--offline

禁用网络访问 [环境变量: UV_OFFLINE=]

禁用时,uv 将仅使用本地缓存的数据和本地可用的文件。

--project project

在给定目录中发现项目。

所有 pyproject.tomluv.toml.python-version 文件都将通过从项目根目录向上遍历目录树来发现,项目的虚拟环境 (.venv) 也是如此。

其他命令行参数(例如相对路径)将相对于当前工作目录进行解析。

参见 --directory 以完全更改工作目录。

当在 uv pip 接口中使用时,此设置无效。

也可以通过 UV_PROJECT 环境变量设置。

--quiet, -q

使用安静输出。

重复此选项,例如 -qq,将启用静默模式,其中 uv 不会将任何输出写入标准输出。

--verbose, -v

使用详细输出。

您可以使用 RUST_LOG 环境变量配置细粒度日志记录。(https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html#directives

uv python update-shell

确保 Python 可执行文件目录在 PATH 中。

如果 Python 可执行文件目录不在 PATH 中,uv 将尝试将其添加到相关的 shell 配置文件中。

如果 shell 配置文件中已经包含将可执行文件目录添加到路径的代码,但该目录不在 PATH 中,uv 将以错误退出。

Python 可执行文件目录是根据 XDG 标准确定的,可以通过 uv python dir --bin 获取。

用法

uv python update-shell [OPTIONS]

Options (选项)

--allow-insecure-host, --trusted-host allow-insecure-host

允许与主机建立不安全连接。

可以多次提供。

期望接收主机名(例如 localhost)、主机-端口对(例如 localhost:8080)或 URL(例如 https://)。

警告:此列表中的主机不会根据系统的证书存储进行验证。仅在具有受信任来源的安全网络中使用 --allow-insecure-host,因为它会绕过 SSL 验证,可能会使您面临 MITM 攻击。

也可以通过 UV_INSECURE_HOST 环境变量设置。

--cache-dir cache-dir

缓存目录的路径。

默认在 macOS 和 Linux 上为 $XDG_CACHE_HOME/uv$HOME/.cache/uv,在 Windows 上为 %LOCALAPPDATA%\uv\cache

要查看缓存目录的位置,请运行 uv cache dir

也可以通过 UV_CACHE_DIR 环境变量设置。

--color color-choice

控制输出中颜色的使用。

默认情况下,uv 在写入终端时会自动检测对颜色的支持。

可选值

  • auto:仅在输出到支持颜色的终端或 TTY 时启用彩色输出
  • always:无论检测到的环境如何,都启用彩色输出
  • never:禁用彩色输出
--config-file config-file

用于配置的 uv.toml 文件路径。

虽然 uv 配置可以包含在 pyproject.toml 文件中,但在这种上下文下是不允许的。

也可以通过 UV_CONFIG_FILE 环境变量设置。

--directory directory

在运行命令之前切换到指定目录。

相对路径将以给定目录为基础进行解析。

参见 --project 仅更改项目根目录。

也可以通过 UV_WORKING_DIR 环境变量设置。

--help, -h

显示此命令的简明帮助信息

--managed-python

要求使用 uv 管理的 Python 版本 [环境变量: UV_MANAGED_PYTHON=]

默认情况下,uv 优先使用其管理的 Python 版本。但是,如果未安装 uv 管理的 Python,它将使用系统 Python 版本。此选项将禁用系统 Python 版本的调用。

--native-tls

是否从平台的原生存储中加载 TLS 证书 [环境变量: UV_NATIVE_TLS=]

默认情况下,uv 从绑定的 webpki-roots crate 中加载证书。webpki-roots 是一组来自 Mozilla 的可靠信任根,在 uv 中包含它们可提高可移植性和性能(特别是在 macOS 上)。

然而,在某些情况下,您可能希望使用平台的原生证书存储,特别是当您依赖于系统证书存储中包含的公司信任根(例如强制代理)时。

--no-cache, --no-cache-dir, -n

避免从缓存中读取或写入缓存,而是在操作期间使用临时目录

也可以通过 UV_NO_CACHE 环境变量设置。

--no-config

避免发现配置文件(pyproject.tomluv.toml)。

通常,会在当前目录、父目录或用户配置目录中发现配置文件。

也可以通过 UV_NO_CONFIG 环境变量设置。

--no-managed-python

禁用对 uv 管理的 Python 版本的使用 [环境变量: UV_NO_MANAGED_PYTHON=]

相反,uv 将在系统上搜索合适的 Python 版本。

--no-progress

隐藏所有进度输出 [环境变量: UV_NO_PROGRESS=]

例如,微调器或进度条。

--no-python-downloads

禁用 Python 的自动下载。

--offline

禁用网络访问 [环境变量: UV_OFFLINE=]

禁用时,uv 将仅使用本地缓存的数据和本地可用的文件。

--project project

在给定目录中发现项目。

所有 pyproject.tomluv.toml.python-version 文件都将通过从项目根目录向上遍历目录树来发现,项目的虚拟环境 (.venv) 也是如此。

其他命令行参数(例如相对路径)将相对于当前工作目录进行解析。

参见 --directory 以完全更改工作目录。

当在 uv pip 接口中使用时,此设置无效。

也可以通过 UV_PROJECT 环境变量设置。

--quiet, -q

使用安静输出。

重复此选项,例如 -qq,将启用静默模式,其中 uv 不会将任何输出写入标准输出。

--verbose, -v

使用详细输出。

您可以使用 RUST_LOG 环境变量配置细粒度日志记录。(https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html#directives

uv pip

使用兼容 pip 的接口管理 Python 包

用法

uv pip [OPTIONS] <COMMAND>

命令

uv pip compile

requirements.in 文件编译为 requirements.txtpylock.toml 文件

uv pip sync

将环境与 requirements.txtpylock.toml 文件同步

uv pip install

将包安装到环境中

uv pip uninstall

从环境中卸载包

uv pip freeze

以 requirements 格式列出安装在环境中的包

uv pip list

以表格格式列出安装在环境中的包

uv pip show

显示一个或多个已安装包的信息

uv pip tree

显示环境的依赖树

uv pip check

验证已安装的包是否有兼容的依赖关系

uv pip compile

requirements.in 文件编译为 requirements.txtpylock.toml 文件

用法

uv pip compile [OPTIONS] <SRC_FILE|--group <GROUP>>

参数

SRC_FILE

包含给定文件中列出的包。

支持以下格式:requirements.txt、具有内联元数据的 .py 文件、pylock.tomlpyproject.tomlsetup.pysetup.cfg

如果提供了 pyproject.tomlsetup.pysetup.cfg 文件,uv 将提取相关项目的要求。

如果提供了 -,则将从 stdin 读取要求。

要求文件的顺序及其内部要求的顺序用于确定解析过程中的优先级。

Options (选项)

--all-extras

包含所有可选依赖项。

仅适用于 pyproject.tomlsetup.pysetup.cfg 源。

--allow-insecure-host, --trusted-host allow-insecure-host

允许与主机建立不安全连接。

可以多次提供。

期望接收主机名(例如 localhost)、主机-端口对(例如 localhost:8080)或 URL(例如 https://)。

警告:此列表中的主机不会根据系统的证书存储进行验证。仅在具有受信任来源的安全网络中使用 --allow-insecure-host,因为它会绕过 SSL 验证,可能会使您面临 MITM 攻击。

也可以通过 UV_INSECURE_HOST 环境变量设置。

--annotation-style annotation-style

输出文件中包含的注释样式,用于指示每个包的来源。

默认为 split

可选值

  • line:将注释渲染在单行上,以逗号分隔
  • split:将每个注释渲染在各自的行上
--build-constraints, --build-constraint, -b build-constraints

构建源码包时,使用给定的 requirements 文件约束构建依赖项。

约束文件是类似于 requirements.txt 的文件,它们仅控制已安装需求的版本。但是,在约束文件中包含包不会触发该包的安装。

也可以通过 UV_BUILD_CONSTRAINT 环境变量设置。

--cache-dir cache-dir

缓存目录的路径。

默认在 macOS 和 Linux 上为 $XDG_CACHE_HOME/uv$HOME/.cache/uv,在 Windows 上为 %LOCALAPPDATA%\uv\cache

要查看缓存目录的位置,请运行 uv cache dir

也可以通过 UV_CACHE_DIR 环境变量设置。

--color color-choice

控制输出中颜色的使用。

默认情况下,uv 在写入终端时会自动检测对颜色的支持。

可选值

  • auto:仅在输出到支持颜色的终端或 TTY 时启用彩色输出
  • always:无论检测到的环境如何,都启用彩色输出
  • never:禁用彩色输出
--config-file config-file

用于配置的 uv.toml 文件路径。

虽然 uv 配置可以包含在 pyproject.toml 文件中,但在这种上下文下是不允许的。

也可以通过 UV_CONFIG_FILE 环境变量设置。

--config-setting, --config-settings, -C config-setting

传递给 PEP 517 构建后端的设置,指定为 KEY=VALUE

--config-settings-package, --config-settings-package config-settings-package

传递给特定包的 PEP 517 构建后端的设置,指定为 PACKAGE:KEY=VALUE

--constraints, --constraint, -c constraints

使用给定的需求文件约束版本。

约束文件是类似于 requirements.txt 的文件,它们仅控制已安装需求的版本。但是,在约束文件中包含包不会触发该包的安装。

这等同于 pip 的 --constraint 选项。

也可以通过 UV_CONSTRAINT 环境变量设置。

--custom-compile-command custom-compile-command

要包含在 uv pip compile 生成的输出文件顶部的标题注释。

用于反映封装 uv pip compile 的自定义构建脚本和命令。

也可以通过 UV_CUSTOM_COMPILE_COMMAND 环境变量进行设置。

--default-index default-index

默认包索引的 URL(默认:https://pypi.ac.cn/simple)。

接受符合 PEP 503(简单存储库 API)的存储库,或以相同格式布局的本地目录。

此标志给出的索引优先级低于通过 --index 标志指定的所有其他索引。

也可以通过 UV_DEFAULT_INDEX 环境变量设置。

--directory directory

在运行命令之前切换到指定目录。

相对路径将以给定目录为基础进行解析。

参见 --project 仅更改项目根目录。

也可以通过 UV_WORKING_DIR 环境变量设置。

--emit-build-options

在生成的输出文件中包含 --no-binary--only-binary 条目

在生成的输出文件中包含 --find-links 条目

--emit-index-annotation

包含注释,指示用于解析每个包的索引(例如 # from https://pypi.ac.cn/simple

--emit-index-url

在生成的输出文件中包含 --index-url--extra-index-url 条目

--exclude-newer exclude-newer

将候选包限制为给定日期之前上传的包。

接受 RFC 3339 时间戳(例如 2006-12-02T02:07:43Z)、相同格式的本地日期(例如 2006-12-02,基于系统配置的时区解析)、“友好”持续时间(例如 24 hours1 week30 days)或 ISO 8601 持续时间(例如 PT24HP7DP30D)。

持续时间不尊重本地时区的语义,始终假定一天为 24 小时(例如忽略夏令时转换)并解析为固定的秒数。不允许使用月和年等日历单位。

也可以通过 UV_EXCLUDE_NEWER 环境变量设置。

--exclude-newer-package exclude-newer-package

将特定包的候选包限制为给定日期之前上传的包。

接受 PACKAGE=DATE 格式的包-日期对,其中 DATE 是 RFC 3339 时间戳(例如 2006-12-02T02:07:43Z)、相同格式的本地日期(例如 2006-12-02,基于系统配置的时区解析)、“友好”持续时间(例如 24 hours1 week30 days)或 ISO 8601 持续时间(例如 PT24HP7DP30D)。

持续时间不尊重本地时区的语义,始终假定一天为 24 小时(例如忽略夏令时转换)并解析为固定的秒数。不允许使用月和年等日历单位。

可以为不同的包多次提供。

--excludes, --exclude excludes

使用给定的 requirements 文件从解析中排除包。

排除文件是类似于 requirements.txt 的文件,指定了要从解析中排除的包。当一个包被排除时,它将完全从依赖列表中省略,并且在解析阶段其自身依赖项将被忽略。排除是无条件的,因为需求说明符和标记会被忽略;提供文件中列出的任何包都将从所有解析的环境中省略。

也可以通过 UV_EXCLUDE 环境变量设置。

--extra extra

包含来自指定 extra 名称的可选依赖项;可以多次提供。

仅适用于 pyproject.tomlsetup.pysetup.cfg 源。

--extra-index-url extra-index-url

(已弃用:请改用 --index)除 --index-url 之外要使用的额外包索引 URL。

接受符合 PEP 503(简单存储库 API)的存储库,或以相同格式布局的本地目录。

通过此标志提供的所有索引的优先级都高于 --index-url(默认为 PyPI)指定的索引。当提供多个 --extra-index-url 标志时,较早的值具有更高的优先级。

也可以通过 UV_EXTRA_INDEX_URL 环境变量设置。

除在注册表索引中找到的位置外,还要搜索候选分发包的位置。

如果是路径,则目标必须是包含顶层 wheel 文件 (.whl) 或源代码分发包(例如 .tar.gz.zip)的目录。

如果是 URL,页面必须包含符合上述格式的包文件链接的平面列表。

也可以通过 UV_FIND_LINKS 环境变量设置。

--fork-strategy fork-strategy

在跨 Python 版本和平台选择给定包的多个版本时要使用的策略。

默认情况下,uv 将优化为为每个支持的 Python 版本 (requires-python) 选择每个包的最新版本,同时最小化跨平台的选定版本数量。

fewest 下,uv 将最小化每个包的选定版本数量,优先选择与更广泛支持的 Python 版本或平台兼容的旧版本。

也可以通过 UV_FORK_STRATEGY 环境变量设置。

可选值

  • fewest:优化为为每个包选择最少数量的版本。如果旧版本与更广泛的支持 Python 版本或平台兼容,则可能优先选择旧版本
  • requires-python:优化为为每个支持的 Python 版本选择每个包的最新支持版本
--format format

输出解析结果的格式。

同时支持 requirements.txtpylock.toml (PEP 751) 输出格式。

如果提供了输出文件,uv 将根据文件扩展名推断输出格式。否则,默认为 requirements.txt

可选值

  • requirements.txt: 以 requirements.txt 格式导出
  • pylock.toml: 以 pylock.toml 格式导出
--generate-hashes

在输出文件中包含分发包的哈希值

--group group

pyproject.toml 中安装指定的依赖项组。

如果不提供路径,则使用工作目录中的 pyproject.toml

可以多次提供。

--help, -h

显示此命令的简明帮助信息

--index index

除默认索引外,解析依赖项时要使用的 URL。

接受符合 PEP 503(简单存储库 API)的存储库,或以相同格式布局的本地目录。

通过此标志提供的所有索引的优先级都高于 --default-index(默认为 PyPI)指定的索引。当提供多个 --index 标志时,较早的值具有更高的优先级。

不支持将索引名称用作值。相对路径必须使用 Unix 上的 ./../,或 Windows 上的 .\\..\\./../ 与索引名称区分开来。

也可以通过 UV_INDEX 环境变量设置。

--index-strategy index-strategy

在针对多个索引 URL 进行解析时要使用的策略。

默认情况下,uv 将在给定包可用的第一个索引处停止,并将解析限制为该第一个索引中存在的那些包 (first-index)。这可以防止“依赖混淆”攻击,攻击者可以在该攻击中以相同的名称将恶意包上传到备用索引。

也可以通过 UV_INDEX_STRATEGY 环境变量设置。

可选值

  • first-index:仅使用第一个返回给定包名称匹配结果的索引中的结果
  • unsafe-first-match:搜索跨所有索引的每个包名称,在转到下一个索引之前耗尽第一个索引中的版本
  • unsafe-best-match:搜索跨所有索引的每个包名称,优先选择找到的“最佳”版本。如果包版本存在于多个索引中,则仅查看第一个索引的条目
--index-url, -i index-url

(已弃用:请改用 --default-index)Python 包索引的 URL(默认:https://pypi.ac.cn/simple)。

接受符合 PEP 503(简单存储库 API)的存储库,或以相同格式布局的本地目录。

此标志给出的索引优先级低于通过 --extra-index-url 标志指定的所有其他索引。

也可以通过 UV_INDEX_URL 环境变量设置。

--keyring-provider keyring-provider

尝试使用 keyring 进行索引 URL 的身份验证。

目前,仅支持 --keyring-provider subprocess,它将 uv 配置为使用 keyring CLI 来处理身份验证。

默认为 disabled

也可以通过 UV_KEYRING_PROVIDER 环境变量设置。

可选值

  • disabled:不使用密钥环进行凭据查找
  • subprocess:使用 keyring 命令进行凭据查找

从全局缓存安装包时要使用的方法。

此选项仅在构建源码包时使用。

默认在 macOS 和 Linux 上为 clone(也称为写时复制),在 Windows 上为 hardlink

警告:不建议使用符号链接链接模式,因为它们会在缓存和目标环境之间创建紧密的耦合。例如,清除缓存 (uv cache clean) 将通过移除底层源文件来破坏所有已安装的包。请谨慎使用符号链接。

也可以通过 UV_LINK_MODE 环境变量设置。

可选值

  • clone:将包从源克隆(即写时复制)到目标
  • copy:将包从源复制到目标
  • hardlink:将包从源硬链接到目标
  • symlink:将包从源符号链接到目标
--managed-python

要求使用 uv 管理的 Python 版本 [环境变量: UV_MANAGED_PYTHON=]

默认情况下,uv 优先使用其管理的 Python 版本。但是,如果未安装 uv 管理的 Python,它将使用系统 Python 版本。此选项将禁用系统 Python 版本的调用。

--native-tls

是否从平台的原生存储中加载 TLS 证书 [环境变量: UV_NATIVE_TLS=]

默认情况下,uv 从绑定的 webpki-roots crate 中加载证书。webpki-roots 是一组来自 Mozilla 的可靠信任根,在 uv 中包含它们可提高可移植性和性能(特别是在 macOS 上)。

然而,在某些情况下,您可能希望使用平台的原生证书存储,特别是当您依赖于系统证书存储中包含的公司信任根(例如强制代理)时。

--no-annotate

排除指示每个包来源的注释

--no-binary no-binary

不安装预构建的 wheel。

给定的包将从源代码构建和安装。如果可用,解析器仍将使用预构建的 wheel 来提取包元数据。

可以提供多个包。使用 :all: 禁用所有包的二进制文件。使用 :none: 清除之前指定的包。

--no-build

不构建源代码分发包。

启用后,解析将不会运行任意 Python 代码。已构建的源代码分发包的缓存 wheel 将被重用,但需要构建分发包的操作将报错退出。

--only-binary :all: 的别名。

--no-build-isolation

构建源代码分发包时禁用隔离。

假定 PEP 518 指定的构建依赖项已安装。

也可以通过 UV_NO_BUILD_ISOLATION 环境变量设置。

--no-build-isolation-package no-build-isolation-package

为特定包构建源代码分发包时禁用隔离。

假定包的 PEP 518 指定的构建依赖项已安装。

--no-cache, --no-cache-dir, -n

避免从缓存中读取或写入缓存,而是在操作期间使用临时目录

也可以通过 UV_NO_CACHE 环境变量设置。

--no-deps

忽略包的依赖关系,仅将命令行中明确列出的包添加到结果要求文件中

--no-emit-package, --unsafe-package no-emit-package

指定从输出解析中省略的包。其依赖关系仍将包含在解析中。等同于 pip-compile 的 --unsafe-package 选项

--no-header

排除生成输出文件顶部的注释头

--no-index

忽略注册表索引(例如 PyPI),而是依赖直接 URL 依赖项和通过 --find-links 提供的依赖项

--no-managed-python

禁用对 uv 管理的 Python 版本的使用 [环境变量: UV_NO_MANAGED_PYTHON=]

相反,uv 将在系统上搜索合适的 Python 版本。

--no-progress

隐藏所有进度输出 [环境变量: UV_NO_PROGRESS=]

例如,微调器或进度条。

--no-python-downloads

禁用 Python 的自动下载。

--no-sources

解析依赖项时忽略 tool.uv.sources 表。用于根据标准兼容、可发布的包元数据进行锁定,而不是使用任何工作空间、Git、URL 或本地路径源

也可以通过 UV_NO_SOURCES 环境变量设置。

--no-sources-package no-sources-package

不要为指定包使用 tool.uv.sources 表中的源

也可以通过 UV_NO_SOURCES_PACKAGE 环境变量设置。

--no-strip-extras

在输出文件中包含 extras。

默认情况下,uv 会剥离 extras,因为由 extras 拉入的任何包都已经作为依赖项直接包含在输出文件中。此外,使用 --no-strip-extras 生成的输出文件不能用作 installsync 调用中的约束文件。

--no-strip-markers

在输出文件中包含环境标记。

默认情况下,uv 会剥离环境标记,因为 compile 生成的解析结果仅保证对目标环境有效。

--offline

禁用网络访问 [环境变量: UV_OFFLINE=]

禁用时,uv 将仅使用本地缓存的数据和本地可用的文件。

--only-binary only-binary

仅使用预构建的 wheels;不要构建源代码分发包。

启用后,解析过程将不会运行来自给定包的代码。已构建的源代码分发包的缓存 wheels 将被重用,但需要构建分发包的操作将报错退出。

可以提供多个包。使用 :all: 禁用所有包的二进制文件。使用 :none: 清除之前指定的包。

--output-file, -o output-file

将编译后的要求写入给定的 requirements.txtpylock.toml 文件。

如果文件已存在,解析依赖项时将优先选择现有版本,除非同时指定了 --upgrade

--overrides, --override overrides

使用给定的 requirements 文件覆盖版本。

覆盖文件是类似于 requirements.txt 的文件,它们强制安装特定版本的需求,无论任何组成包声明了什么需求,也无论这是否会被视为无效解析。

约束是加性的,即它们与组成包的需求相结合;而覆盖是绝对的,即它们完全替换了组成包的需求。

也可以通过 UV_OVERRIDE 环境变量设置。

--prerelease prerelease

考虑预发布版本时要使用的策略。

默认情况下,uv 将接受 发布预发布版本的包,以及在声明的需求说明符中包含显式预发布标记的一方需求 (if-necessary-or-explicit)。

也可以通过 UV_PRERELEASE 环境变量设置。

可选值

  • disallow:不允许所有预发布版本
  • allow:允许所有预发布版本
  • if-necessary:如果包的所有版本都是预发布版本,则允许预发布版本
  • explicit:允许在版本需求中具有显式预发布标记的一方包的预发布版本
  • if-necessary-or-explicit:如果包的所有版本都是预发布版本,或者如果包在版本需求中具有显式预发布标记,则允许预发布版本
--project project

在给定目录中发现项目。

所有 pyproject.tomluv.toml.python-version 文件都将通过从项目根目录向上遍历目录树来发现,项目的虚拟环境 (.venv) 也是如此。

其他命令行参数(例如相对路径)将相对于当前工作目录进行解析。

参见 --directory 以完全更改工作目录。

当在 uv pip 接口中使用时,此设置无效。

也可以通过 UV_PROJECT 环境变量设置。

--python, -p python

解析过程中使用的 Python 解释器。

构建源码包时需要 Python 解释器来确定没有 wheel 时的包元数据。

除非提供了 --python-version,否则解释器也用于确定默认的最小 Python 版本。

此选项遵循 UV_PYTHON,但当通过环境变量设置时,它会被 --python-version 覆盖。

请参阅 uv python 以了解有关 Python 发现和支持的请求格式的详细信息。

--python-platform python-platform

应该为其解析要求的平台。

表示为“目标三元组”,这是一个描述目标平台的字符串,包括 CPU、供应商和操作系统名称,例如 x86_64-unknown-linux-gnuaarch64-apple-darwin

当针对 macOS (Darwin) 时,默认最小版本为 13.0。使用 MACOSX_DEPLOYMENT_TARGET 指定不同的最小版本,例如 14.0

当针对 iOS 时,默认最小版本为 13.0。使用 IPHONEOS_DEPLOYMENT_TARGET 指定不同的最小版本,例如 14.0

当针对 Android 时,默认最小 Android API 级别为 24。使用 ANDROID_API_LEVEL 指定不同的最小版本,例如 26

可选值

  • windowsx86_64-pc-windows-msvc 的别名,Windows 的默认目标
  • linuxx86_64-unknown-linux-gnu 的别名,Linux 的默认目标
  • macosaarch64-apple-darwin 的别名,macOS 的默认目标
  • x86_64-pc-windows-msvc:64 位 x86 Windows 目标
  • aarch64-pc-windows-msvc:ARM64 Windows 目标
  • i686-pc-windows-msvc:32 位 x86 Windows 目标
  • x86_64-unknown-linux-gnu:x86 Linux 目标。等效于 x86_64-manylinux_2_28
  • aarch64-apple-darwin:ARM 架构 macOS 目标,如 Apple Silicon 设备上所见
  • x86_64-apple-darwin:x86 macOS 目标
  • aarch64-unknown-linux-gnu:ARM64 Linux 目标。等效于 aarch64-manylinux_2_28
  • aarch64-unknown-linux-musl:ARM64 Linux 目标
  • x86_64-unknown-linux-muslx86_64 Linux 目标
  • riscv64-unknown-linux:RISCV64 Linux 目标
  • x86_64-manylinux2014manylinux2014 平台的 x86_64 目标。等效于 x86_64-manylinux_2_17
  • x86_64-manylinux_2_17manylinux_2_17 平台的 x86_64 目标
  • x86_64-manylinux_2_28manylinux_2_28 平台的 x86_64 目标
  • x86_64-manylinux_2_31manylinux_2_31 平台的 x86_64 目标
  • x86_64-manylinux_2_32manylinux_2_32 平台的 x86_64 目标
  • x86_64-manylinux_2_33manylinux_2_33 平台的 x86_64 目标
  • x86_64-manylinux_2_34manylinux_2_34 平台的 x86_64 目标
  • x86_64-manylinux_2_35manylinux_2_35 平台的 x86_64 目标
  • x86_64-manylinux_2_36manylinux_2_36 平台的 x86_64 目标
  • x86_64-manylinux_2_37manylinux_2_37 平台的 x86_64 目标
  • x86_64-manylinux_2_38manylinux_2_38 平台的 x86_64 目标
  • x86_64-manylinux_2_39manylinux_2_39 平台的 x86_64 目标
  • x86_64-manylinux_2_40manylinux_2_40 平台的 x86_64 目标
  • aarch64-manylinux2014manylinux2014 平台的 ARM64 目标。等效于 aarch64-manylinux_2_17
  • aarch64-manylinux_2_17manylinux_2_17 平台的 ARM64 目标
  • aarch64-manylinux_2_28manylinux_2_28 平台的 ARM64 目标
  • aarch64-manylinux_2_31manylinux_2_31 平台的 ARM64 目标
  • aarch64-manylinux_2_32manylinux_2_32 平台的 ARM64 目标
  • aarch64-manylinux_2_33manylinux_2_33 平台的 ARM64 目标
  • aarch64-manylinux_2_34manylinux_2_34 平台的 ARM64 目标
  • aarch64-manylinux_2_35manylinux_2_35 平台的 ARM64 目标
  • aarch64-manylinux_2_36manylinux_2_36 平台的 ARM64 目标
  • aarch64-manylinux_2_37manylinux_2_37 平台的 ARM64 目标
  • aarch64-manylinux_2_38manylinux_2_38 平台的 ARM64 目标
  • aarch64-manylinux_2_39manylinux_2_39 平台的 ARM64 目标
  • aarch64-manylinux_2_40manylinux_2_40 平台的 ARM64 目标
  • aarch64-linux-android:ARM64 Android 目标
  • x86_64-linux-androidx86_64 Android 目标
  • wasm32-pyodide2024:使用 Pyodide 2024 平台的 wasm32 目标。旨在与 Python 3.12 一起使用
  • arm64-apple-ios:iOS 设备的 ARM64 目标
  • arm64-apple-ios-simulator:iOS 模拟器的 ARM64 目标
  • x86_64-apple-ios-simulator:iOS 模拟器的 x86_64 目标
--python-version python-version

用于解析的 Python 版本。

例如 3.83.8.17

默认为用于解析的 Python 解释器的版本。

定义了解析后的要求必须支持的最小 Python 版本。

如果省略补丁版本,则假定为最小补丁版本。例如,3.8 被映射为 3.8.0

--quiet, -q

使用安静输出。

重复此选项,例如 -qq,将启用静默模式,其中 uv 不会将任何输出写入标准输出。

--refresh

刷新所有缓存数据

--refresh-package refresh-package

刷新特定包的缓存数据

--resolution resolution

在为给定包需求选择不同的兼容版本时要使用的策略。

默认情况下,uv 将使用每个包的最新兼容版本 (highest)。

也可以通过 UV_RESOLUTION 环境变量设置。

可选值

  • highest:解析每个包的最高兼容版本
  • lowest:解析每个包的最低兼容版本
  • lowest-direct:解析任何直接依赖项的最低兼容版本,以及任何传递依赖项的最高兼容版本
--system

将包安装到系统 Python 环境中。

默认情况下,uv 使用当前工作目录或任何父目录中的虚拟环境,并回退到在 PATH 中搜索 Python 可执行文件。--system 选项指示 uv 避免使用虚拟环境 Python,并将搜索限制在系统路径中。

也可以通过 UV_SYSTEM_PYTHON 环境变量进行设置。

--torch-backend torch-backend

获取 PyTorch 生态系统中的包时使用的后端(例如 cpucu126auto)。

设置时,uv 将忽略 PyTorch 生态系统中包的已配置索引 URL,并将改用定义的后端。

例如,当设置为 cpu 时,uv 将使用仅限 CPU 的 PyTorch 索引;当设置为 cu126 时,uv 将使用适用于 CUDA 12.6 的 PyTorch 索引。

auto 模式将尝试根据当前安装的 CUDA 驱动程序检测适当的 PyTorch 索引。

此选项处于预览阶段,可能在任何未来版本中更改。

也可以通过 UV_TORCH_BACKEND 环境变量设置。

可选值

  • auto: 根据操作系统和 CUDA 驱动版本选择适当的 PyTorch 索引
  • cpu: 使用仅限 CPU 的 PyTorch 索引
  • cu130: 使用适用于 CUDA 13.0 的 PyTorch 索引
  • cu129: 使用适用于 CUDA 12.9 的 PyTorch 索引
  • cu128: 使用适用于 CUDA 12.8 的 PyTorch 索引
  • cu126: 使用适用于 CUDA 12.6 的 PyTorch 索引
  • cu125: 使用适用于 CUDA 12.5 的 PyTorch 索引
  • cu124: 使用适用于 CUDA 12.4 的 PyTorch 索引
  • cu123: 使用适用于 CUDA 12.3 的 PyTorch 索引
  • cu122: 使用适用于 CUDA 12.2 的 PyTorch 索引
  • cu121: 使用适用于 CUDA 12.1 的 PyTorch 索引
  • cu120: 使用适用于 CUDA 12.0 的 PyTorch 索引
  • cu118: 使用适用于 CUDA 11.8 的 PyTorch 索引
  • cu117: 使用适用于 CUDA 11.7 的 PyTorch 索引
  • cu116: 使用适用于 CUDA 11.6 的 PyTorch 索引
  • cu115: 使用适用于 CUDA 11.5 的 PyTorch 索引
  • cu114: 使用适用于 CUDA 11.4 的 PyTorch 索引
  • cu113: 使用适用于 CUDA 11.3 的 PyTorch 索引
  • cu112: 使用适用于 CUDA 11.2 的 PyTorch 索引
  • cu111: 使用适用于 CUDA 11.1 的 PyTorch 索引
  • cu110: 使用适用于 CUDA 11.0 的 PyTorch 索引
  • cu102: 使用适用于 CUDA 10.2 的 PyTorch 索引
  • cu101: 使用适用于 CUDA 10.1 的 PyTorch 索引
  • cu100: 使用适用于 CUDA 10.0 的 PyTorch 索引
  • cu92: 使用适用于 CUDA 9.2 的 PyTorch 索引
  • cu91: 使用适用于 CUDA 9.1 的 PyTorch 索引
  • cu90: 使用适用于 CUDA 9.0 的 PyTorch 索引
  • cu80: 使用适用于 CUDA 8.0 的 PyTorch 索引
  • rocm7.1: 使用适用于 ROCm 7.1 的 PyTorch 索引
  • rocm7.0: 使用适用于 ROCm 7.0 的 PyTorch 索引
  • rocm6.4: 使用适用于 ROCm 6.4 的 PyTorch 索引
  • rocm6.3: 使用适用于 ROCm 6.3 的 PyTorch 索引
  • rocm6.2.4: 使用适用于 ROCm 6.2.4 的 PyTorch 索引
  • rocm6.2: 使用适用于 ROCm 6.2 的 PyTorch 索引
  • rocm6.1: 使用适用于 ROCm 6.1 的 PyTorch 索引
  • rocm6.0: 使用适用于 ROCm 6.0 的 PyTorch 索引
  • rocm5.7: 使用适用于 ROCm 5.7 的 PyTorch 索引
  • rocm5.6: 使用适用于 ROCm 5.6 的 PyTorch 索引
  • rocm5.5: 使用适用于 ROCm 5.5 的 PyTorch 索引
  • rocm5.4.2: 使用适用于 ROCm 5.4.2 的 PyTorch 索引
  • rocm5.4: 使用适用于 ROCm 5.4 的 PyTorch 索引
  • rocm5.3: 使用适用于 ROCm 5.3 的 PyTorch 索引
  • rocm5.2: 使用适用于 ROCm 5.2 的 PyTorch 索引
  • rocm5.1.1: 使用适用于 ROCm 5.1.1 的 PyTorch 索引
  • rocm4.2: 使用适用于 ROCm 4.2 的 PyTorch 索引
  • rocm4.1: 使用适用于 ROCm 4.1 的 PyTorch 索引
  • rocm4.0.1: 使用适用于 ROCm 4.0.1 的 PyTorch 索引
  • xpu: 使用适用于 Intel XPU 的 PyTorch 索引
--universal

执行通用解析,尝试生成一个与所有操作系统、架构和 Python 实现兼容的单一 requirements.txt 输出文件。

在通用模式下,当前 Python 版本(或用户提供的 --python-version)将被视为下限。例如,--universal --python-version 3.7 将为 Python 3.7 及更高版本生成通用解析。

隐含 --no-strip-markers

--upgrade, -U

允许包升级,忽略任何现有输出文件中的固定版本。暗示 --refresh

--upgrade-package, -P upgrade-package

允许升级特定包,忽略任何现有输出文件中的固定版本。暗示 --refresh-package

--verbose, -v

使用详细输出。

您可以使用 RUST_LOG 环境变量配置细粒度日志记录。(https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html#directives

uv pip sync

将环境与 requirements.txtpylock.toml 文件同步。

同步环境时,任何未在 requirements.txtpylock.toml 文件中列出的包都将被删除。要保留无关包,请改用 uv pip install

假设输入文件是 pip compileuv export 操作的输出,它将包含所有传递依赖项。如果传递依赖项不在文件中,则不会安装它们。如果缺少任何传递依赖项,请使用 --strict 发出警告。

用法

uv pip sync [OPTIONS] <SRC_FILE>...

参数

SRC_FILE

包含给定文件中列出的包。

支持以下格式:requirements.txt、具有内联元数据的 .py 文件、pylock.tomlpyproject.tomlsetup.pysetup.cfg

如果提供了 pyproject.tomlsetup.pysetup.cfg 文件,uv 将提取相关项目的要求。

如果提供了 -,则将从 stdin 读取要求。

Options (选项)

--all-extras

包含所有可选依赖项。

仅适用于 pylock.tomlpyproject.tomlsetup.pysetup.cfg 源。

--allow-empty-requirements

允许同步空要求,这将清除环境中所有的包

--allow-insecure-host, --trusted-host allow-insecure-host

允许与主机建立不安全连接。

可以多次提供。

期望接收主机名(例如 localhost)、主机-端口对(例如 localhost:8080)或 URL(例如 https://)。

警告:此列表中的主机不会根据系统的证书存储进行验证。仅在具有受信任来源的安全网络中使用 --allow-insecure-host,因为它会绕过 SSL 验证,可能会使您面临 MITM 攻击。

也可以通过 UV_INSECURE_HOST 环境变量设置。

--break-system-packages

允许 uv 修改 EXTERNALLY-MANAGED Python 安装。

警告:--break-system-packages 旨在用于持续集成 (CI) 环境,当安装到由外部包管理器(如 apt)管理的 Python 安装中时使用。使用时应谨慎,因为此类 Python 安装明确建议不要进行其他包管理器(如 uv 或 pip)的修改。

也可以通过 UV_BREAK_SYSTEM_PACKAGES 环境变量进行设置。

--build-constraints, --build-constraint, -b build-constraints

构建源码包时,使用给定的 requirements 文件约束构建依赖项。

约束文件是类似于 requirements.txt 的文件,它们仅控制已安装需求的版本。但是,在约束文件中包含包不会触发该包的安装。

也可以通过 UV_BUILD_CONSTRAINT 环境变量设置。

--cache-dir cache-dir

缓存目录的路径。

默认在 macOS 和 Linux 上为 $XDG_CACHE_HOME/uv$HOME/.cache/uv,在 Windows 上为 %LOCALAPPDATA%\uv\cache

要查看缓存目录的位置,请运行 uv cache dir

也可以通过 UV_CACHE_DIR 环境变量设置。

--color color-choice

控制输出中颜色的使用。

默认情况下,uv 在写入终端时会自动检测对颜色的支持。

可选值

  • auto:仅在输出到支持颜色的终端或 TTY 时启用彩色输出
  • always:无论检测到的环境如何,都启用彩色输出
  • never:禁用彩色输出
--compile-bytecode, --compile

安装后将 Python 文件编译为字节码。

默认情况下,uv 不会将 Python (.py) 文件编译为字节码 (__pycache__/*.pyc);相反,编译是在模块首次导入时延迟执行的。对于启动时间至关重要的用例(例如 CLI 应用程序和 Docker 容器),可以启用此选项,以牺牲较长的安装时间换取更快的启动时间。

启用后,uv 将处理整个 site-packages 目录(包括当前操作未修改的包)以保持一致性。像 pip 一样,它也会忽略错误。

也可以通过 UV_COMPILE_BYTECODE 环境变量设置。

--config-file config-file

用于配置的 uv.toml 文件路径。

虽然 uv 配置可以包含在 pyproject.toml 文件中,但在这种上下文下是不允许的。

也可以通过 UV_CONFIG_FILE 环境变量设置。

--config-setting, --config-settings, -C config-setting

传递给 PEP 517 构建后端的设置,指定为 KEY=VALUE

--config-settings-package, --config-settings-package config-settings-package

传递给特定包的 PEP 517 构建后端的设置,指定为 PACKAGE:KEY=VALUE

--constraints, --constraint, -c constraints

使用给定的需求文件约束版本。

约束文件是类似于 requirements.txt 的文件,它们仅控制已安装需求的版本。但是,在约束文件中包含包不会触发该包的安装。

这等同于 pip 的 --constraint 选项。

也可以通过 UV_CONSTRAINT 环境变量设置。

--default-index default-index

默认包索引的 URL(默认:https://pypi.ac.cn/simple)。

接受符合 PEP 503(简单存储库 API)的存储库,或以相同格式布局的本地目录。

此标志给出的索引优先级低于通过 --index 标志指定的所有其他索引。

也可以通过 UV_DEFAULT_INDEX 环境变量设置。

--directory directory

在运行命令之前切换到指定目录。

相对路径将以给定目录为基础进行解析。

参见 --project 仅更改项目根目录。

也可以通过 UV_WORKING_DIR 环境变量设置。

--dry-run

执行试运行,即不实际安装任何内容,但解析依赖关系并打印结果计划

--exclude-newer exclude-newer

将候选包限制为给定日期之前上传的包。

接受 RFC 3339 时间戳(例如 2006-12-02T02:07:43Z)、相同格式的本地日期(例如 2006-12-02,基于系统配置的时区解析)、“友好”持续时间(例如 24 hours1 week30 days)或 ISO 8601 持续时间(例如 PT24HP7DP30D)。

持续时间不尊重本地时区的语义,始终假定一天为 24 小时(例如忽略夏令时转换)并解析为固定的秒数。不允许使用月和年等日历单位。

也可以通过 UV_EXCLUDE_NEWER 环境变量设置。

--exclude-newer-package exclude-newer-package

将特定包的候选包限制为给定日期之前上传的包。

接受 PACKAGE=DATE 格式的包-日期对,其中 DATE 是 RFC 3339 时间戳(例如 2006-12-02T02:07:43Z)、相同格式的本地日期(例如 2006-12-02,基于系统配置的时区解析)、“友好”持续时间(例如 24 hours1 week30 days)或 ISO 8601 持续时间(例如 PT24HP7DP30D)。

持续时间不尊重本地时区的语义,始终假定一天为 24 小时(例如忽略夏令时转换)并解析为固定的秒数。不允许使用月和年等日历单位。

可以为不同的包多次提供。

--extra extra

包含来自指定 extra 名称的可选依赖项;可以多次提供。

仅适用于 pylock.tomlpyproject.tomlsetup.pysetup.cfg 源。

--extra-index-url extra-index-url

(已弃用:请改用 --index)除 --index-url 之外要使用的额外包索引 URL。

接受符合 PEP 503(简单存储库 API)的存储库,或以相同格式布局的本地目录。

通过此标志提供的所有索引的优先级都高于 --index-url(默认为 PyPI)指定的索引。当提供多个 --extra-index-url 标志时,较早的值具有更高的优先级。

也可以通过 UV_EXTRA_INDEX_URL 环境变量设置。

除在注册表索引中找到的位置外,还要搜索候选分发包的位置。

如果是路径,则目标必须是包含顶层 wheel 文件 (.whl) 或源代码分发包(例如 .tar.gz.zip)的目录。

如果是 URL,页面必须包含符合上述格式的包文件链接的平面列表。

也可以通过 UV_FIND_LINKS 环境变量设置。

--group group

pylock.tomlpyproject.toml 中安装指定的依赖项组。

如果不提供路径,则使用工作目录中的 pylock.tomlpyproject.toml

可以多次提供。

--help, -h

显示此命令的简明帮助信息

--index index

除默认索引外,解析依赖项时要使用的 URL。

接受符合 PEP 503(简单存储库 API)的存储库,或以相同格式布局的本地目录。

通过此标志提供的所有索引的优先级都高于 --default-index(默认为 PyPI)指定的索引。当提供多个 --index 标志时,较早的值具有更高的优先级。

不支持将索引名称用作值。相对路径必须使用 Unix 上的 ./../,或 Windows 上的 .\\..\\./../ 与索引名称区分开来。

也可以通过 UV_INDEX 环境变量设置。

--index-strategy index-strategy

在针对多个索引 URL 进行解析时要使用的策略。

默认情况下,uv 将在给定包可用的第一个索引处停止,并将解析限制为该第一个索引中存在的那些包 (first-index)。这可以防止“依赖混淆”攻击,攻击者可以在该攻击中以相同的名称将恶意包上传到备用索引。

也可以通过 UV_INDEX_STRATEGY 环境变量设置。

可选值

  • first-index:仅使用第一个返回给定包名称匹配结果的索引中的结果
  • unsafe-first-match:搜索跨所有索引的每个包名称,在转到下一个索引之前耗尽第一个索引中的版本
  • unsafe-best-match:搜索跨所有索引的每个包名称,优先选择找到的“最佳”版本。如果包版本存在于多个索引中,则仅查看第一个索引的条目
--index-url, -i index-url

(已弃用:请改用 --default-index)Python 包索引的 URL(默认:https://pypi.ac.cn/simple)。

接受符合 PEP 503(简单存储库 API)的存储库,或以相同格式布局的本地目录。

此标志给出的索引优先级低于通过 --extra-index-url 标志指定的所有其他索引。

也可以通过 UV_INDEX_URL 环境变量设置。

--keyring-provider keyring-provider

尝试使用 keyring 进行索引 URL 的身份验证。

目前,仅支持 --keyring-provider subprocess,它将 uv 配置为使用 keyring CLI 来处理身份验证。

默认为 disabled

也可以通过 UV_KEYRING_PROVIDER 环境变量设置。

可选值

  • disabled:不使用密钥环进行凭据查找
  • subprocess:使用 keyring 命令进行凭据查找

从全局缓存安装包时要使用的方法。

默认在 macOS 和 Linux 上为 clone(也称为写时复制),在 Windows 上为 hardlink

警告:不建议使用符号链接链接模式,因为它们会在缓存和目标环境之间创建紧密的耦合。例如,清除缓存 (uv cache clean) 将通过移除底层源文件来破坏所有已安装的包。请谨慎使用符号链接。

也可以通过 UV_LINK_MODE 环境变量设置。

可选值

  • clone:将包从源克隆(即写时复制)到目标
  • copy:将包从源复制到目标
  • hardlink:将包从源硬链接到目标
  • symlink:将包从源符号链接到目标
--managed-python

要求使用 uv 管理的 Python 版本 [环境变量: UV_MANAGED_PYTHON=]

默认情况下,uv 优先使用其管理的 Python 版本。但是,如果未安装 uv 管理的 Python,它将使用系统 Python 版本。此选项将禁用系统 Python 版本的调用。

--native-tls

是否从平台的原生存储中加载 TLS 证书 [环境变量: UV_NATIVE_TLS=]

默认情况下,uv 从绑定的 webpki-roots crate 中加载证书。webpki-roots 是一组来自 Mozilla 的可靠信任根,在 uv 中包含它们可提高可移植性和性能(特别是在 macOS 上)。

然而,在某些情况下,您可能希望使用平台的原生证书存储,特别是当您依赖于系统证书存储中包含的公司信任根(例如强制代理)时。

--no-allow-empty-requirements
--no-binary no-binary

不安装预构建的 wheel。

给定的包将从源代码构建和安装。如果可用,解析器仍将使用预构建的 wheel 来提取包元数据。

可以提供多个包。使用 :all: 禁用所有包的二进制文件。使用 :none: 清除之前指定的包。

--no-break-system-packages
--no-build

不构建源代码分发包。

启用后,解析将不会运行任意 Python 代码。已构建的源代码分发包的缓存 wheel 将被重用,但需要构建分发包的操作将报错退出。

--only-binary :all: 的别名。

--no-build-isolation

构建源代码分发包时禁用隔离。

假定 PEP 518 指定的构建依赖项已安装。

也可以通过 UV_NO_BUILD_ISOLATION 环境变量设置。

--no-cache, --no-cache-dir, -n

避免从缓存中读取或写入缓存,而是在操作期间使用临时目录

也可以通过 UV_NO_CACHE 环境变量设置。

--no-index

忽略注册表索引(例如 PyPI),而是依赖直接 URL 依赖项和通过 --find-links 提供的依赖项

--no-managed-python

禁用对 uv 管理的 Python 版本的使用 [环境变量: UV_NO_MANAGED_PYTHON=]

相反,uv 将在系统上搜索合适的 Python 版本。

--no-progress

隐藏所有进度输出 [环境变量: UV_NO_PROGRESS=]

例如,微调器或进度条。

--no-python-downloads

禁用 Python 的自动下载。

--no-sources

解析依赖项时忽略 tool.uv.sources 表。用于根据标准兼容、可发布的包元数据进行锁定,而不是使用任何工作空间、Git、URL 或本地路径源

也可以通过 UV_NO_SOURCES 环境变量设置。

--no-sources-package no-sources-package

不要为指定包使用 tool.uv.sources 表中的源

也可以通过 UV_NO_SOURCES_PACKAGE 环境变量设置。

--no-verify-hashes

禁用对要求文件中哈希值的验证。

默认情况下,uv 会验证要求文件中任何可用的哈希值,但不会要求所有要求都有关联的哈希值。要强制执行哈希验证,请使用 --require-hashes

也可以通过 UV_NO_VERIFY_HASHES 环境变量进行设置。

--offline

禁用网络访问 [环境变量: UV_OFFLINE=]

禁用时,uv 将仅使用本地缓存的数据和本地可用的文件。

--only-binary only-binary

仅使用预构建的 wheels;不要构建源代码分发包。

启用后,解析过程将不会运行来自给定包的代码。已构建的源代码分发包的缓存 wheels 将被重用,但需要构建分发包的操作将报错退出。

可以提供多个包。使用 :all: 禁用所有包的二进制文件。使用 :none: 清除之前指定的包。

--prefix prefix

将包安装到指定目录下的 libbin 和其他顶级文件夹中,就像在该位置存在虚拟环境一样。

通常情况下,建议使用 --python 安装到替代环境中,因为通过 --prefix 安装的脚本和其他工件将引用安装解释器,而不是引用 --prefix 目录中添加的任何解释器,这导致它们不可移植。

与其他安装操作不同,此命令不需要发现现有的 Python 环境,且仅搜索用于包解析的 Python 解释器。如果找不到合适的 Python 解释器,uv 将安装一个。要禁用此功能,请添加 --no-python-downloads

--project project

在给定目录中发现项目。

所有 pyproject.tomluv.toml.python-version 文件都将通过从项目根目录向上遍历目录树来发现,项目的虚拟环境 (.venv) 也是如此。

其他命令行参数(例如相对路径)将相对于当前工作目录进行解析。

参见 --directory 以完全更改工作目录。

当在 uv pip 接口中使用时,此设置无效。

也可以通过 UV_PROJECT 环境变量设置。

--python, -p python

应安装包的 Python 解释器。

默认情况下,同步需要一个虚拟环境。可以提供备用 Python 的路径,但这仅建议在持续集成 (CI) 环境中使用,且应谨慎使用,因为它会修改系统 Python 安装。

请参阅 uv python 以了解有关 Python 发现和支持的请求格式的详细信息。

也可以通过 UV_PYTHON 环境变量设置。

--python-platform python-platform

应该为其安装需求的目标平台。

表示为“目标三元组”,这是一个描述目标平台的字符串,包括 CPU、供应商和操作系统名称,例如 x86_64-unknown-linux-gnuaarch64-apple-darwin

当针对 macOS (Darwin) 时,默认最小版本为 13.0。使用 MACOSX_DEPLOYMENT_TARGET 指定不同的最小版本,例如 14.0

当针对 iOS 时,默认最小版本为 13.0。使用 IPHONEOS_DEPLOYMENT_TARGET 指定不同的最小版本,例如 14.0

当针对 Android 时,默认最小 Android API 级别为 24。使用 ANDROID_API_LEVEL 指定不同的最小版本,例如 26

警告:指定时,uv 将选择与 目标 平台兼容的 wheel;因此,安装的分发包可能与 当前 平台不兼容。相反,从源代码构建的任何分发包都可能与 目标 平台不兼容,因为它们是为 当前 平台构建的。--python-platform 选项旨在用于高级用例。

可选值

  • windowsx86_64-pc-windows-msvc 的别名,Windows 的默认目标
  • linuxx86_64-unknown-linux-gnu 的别名,Linux 的默认目标
  • macosaarch64-apple-darwin 的别名,macOS 的默认目标
  • x86_64-pc-windows-msvc:64 位 x86 Windows 目标
  • aarch64-pc-windows-msvc:ARM64 Windows 目标
  • i686-pc-windows-msvc:32 位 x86 Windows 目标
  • x86_64-unknown-linux-gnu:x86 Linux 目标。等效于 x86_64-manylinux_2_28
  • aarch64-apple-darwin:ARM 架构 macOS 目标,如 Apple Silicon 设备上所见
  • x86_64-apple-darwin:x86 macOS 目标
  • aarch64-unknown-linux-gnu:ARM64 Linux 目标。等效于 aarch64-manylinux_2_28
  • aarch64-unknown-linux-musl:ARM64 Linux 目标
  • x86_64-unknown-linux-muslx86_64 Linux 目标
  • riscv64-unknown-linux:RISCV64 Linux 目标
  • x86_64-manylinux2014manylinux2014 平台的 x86_64 目标。等效于 x86_64-manylinux_2_17
  • x86_64-manylinux_2_17manylinux_2_17 平台的 x86_64 目标
  • x86_64-manylinux_2_28manylinux_2_28 平台的 x86_64 目标
  • x86_64-manylinux_2_31manylinux_2_31 平台的 x86_64 目标
  • x86_64-manylinux_2_32manylinux_2_32 平台的 x86_64 目标
  • x86_64-manylinux_2_33manylinux_2_33 平台的 x86_64 目标
  • x86_64-manylinux_2_34manylinux_2_34 平台的 x86_64 目标
  • x86_64-manylinux_2_35manylinux_2_35 平台的 x86_64 目标
  • x86_64-manylinux_2_36manylinux_2_36 平台的 x86_64 目标
  • x86_64-manylinux_2_37manylinux_2_37 平台的 x86_64 目标
  • x86_64-manylinux_2_38manylinux_2_38 平台的 x86_64 目标
  • x86_64-manylinux_2_39manylinux_2_39 平台的 x86_64 目标
  • x86_64-manylinux_2_40manylinux_2_40 平台的 x86_64 目标
  • aarch64-manylinux2014manylinux2014 平台的 ARM64 目标。等效于 aarch64-manylinux_2_17
  • aarch64-manylinux_2_17manylinux_2_17 平台的 ARM64 目标
  • aarch64-manylinux_2_28manylinux_2_28 平台的 ARM64 目标
  • aarch64-manylinux_2_31manylinux_2_31 平台的 ARM64 目标
  • aarch64-manylinux_2_32manylinux_2_32 平台的 ARM64 目标
  • aarch64-manylinux_2_33manylinux_2_33 平台的 ARM64 目标
  • aarch64-manylinux_2_34manylinux_2_34 平台的 ARM64 目标
  • aarch64-manylinux_2_35manylinux_2_35 平台的 ARM64 目标
  • aarch64-manylinux_2_36manylinux_2_36 平台的 ARM64 目标
  • aarch64-manylinux_2_37manylinux_2_37 平台的 ARM64 目标
  • aarch64-manylinux_2_38manylinux_2_38 平台的 ARM64 目标
  • aarch64-manylinux_2_39manylinux_2_39 平台的 ARM64 目标
  • aarch64-manylinux_2_40manylinux_2_40 平台的 ARM64 目标
  • aarch64-linux-android:ARM64 Android 目标
  • x86_64-linux-androidx86_64 Android 目标
  • wasm32-pyodide2024:使用 Pyodide 2024 平台的 wasm32 目标。旨在与 Python 3.12 一起使用
  • arm64-apple-ios:iOS 设备的 ARM64 目标
  • arm64-apple-ios-simulator:iOS 模拟器的 ARM64 目标
  • x86_64-apple-ios-simulator:iOS 模拟器的 x86_64 目标
--python-version python-version

要求应支持的最小 Python 版本(例如 3.73.7.9)。

如果省略补丁版本,则假定为最小补丁版本。例如,3.7 被映射为 3.7.0

--quiet, -q

使用安静输出。

重复此选项,例如 -qq,将启用静默模式,其中 uv 不会将任何输出写入标准输出。

--refresh

刷新所有缓存数据

--refresh-package refresh-package

刷新特定包的缓存数据

--reinstall, --force-reinstall

重新安装所有包,无论它们是否已安装。暗示 --refresh

--reinstall-package reinstall-package

重新安装特定包,无论它是否已安装。暗示 --refresh-package

--require-hashes

要求每个要求都有匹配的哈希值。

默认情况下,uv 会验证要求文件中任何可用的哈希值,但不会要求所有要求都有关联的哈希值。

当启用 --require-hashes 时,*所有*要求必须包含哈希值或哈希集,且*所有*要求必须固定到精确版本(例如 ==1.0.0),或通过直接 URL 指定。

哈希检查模式引入了许多额外的限制

  • 不支持 Git 依赖。 - 不支持可编辑安装。 - 不支持本地依赖,除非它们指向特定的 wheel (.whl) 或源代码归档 (.zip, .tar.gz),而不是目录。

也可以通过 UV_REQUIRE_HASHES 环境变量进行设置。

--strict

完成安装后验证 Python 环境,以检测缺少依赖项的包或其他问题

--system

将包安装到系统 Python 环境中。

默认情况下,uv 安装到当前工作目录或任何父目录中的虚拟环境中。--system 选项指示 uv 改为使用在系统 PATH 中找到的第一个 Python。

警告:--system 旨在用于持续集成 (CI) 环境,且应谨慎使用,因为它会修改系统 Python 安装。

也可以通过 UV_SYSTEM_PYTHON 环境变量进行设置。

--target, -t target

将包安装到指定的目录,而不是虚拟或系统 Python 环境中。包将被安装在该目录的顶层。

与其他安装操作不同,此命令不需要发现现有的 Python 环境,且仅搜索用于包解析的 Python 解释器。如果找不到合适的 Python 解释器,uv 将安装一个。要禁用此功能,请添加 --no-python-downloads

--torch-backend torch-backend

获取 PyTorch 生态系统中的包时使用的后端(例如 cpucu126auto)。

设置时,uv 将忽略 PyTorch 生态系统中包的已配置索引 URL,并将改用定义的后端。

例如,当设置为 cpu 时,uv 将使用仅限 CPU 的 PyTorch 索引;当设置为 cu126 时,uv 将使用适用于 CUDA 12.6 的 PyTorch 索引。

auto 模式将尝试根据当前安装的 CUDA 驱动程序检测适当的 PyTorch 索引。

此选项处于预览阶段,可能在任何未来版本中更改。

也可以通过 UV_TORCH_BACKEND 环境变量设置。

可选值

  • auto: 根据操作系统和 CUDA 驱动版本选择适当的 PyTorch 索引
  • cpu: 使用仅限 CPU 的 PyTorch 索引
  • cu130: 使用适用于 CUDA 13.0 的 PyTorch 索引
  • cu129: 使用适用于 CUDA 12.9 的 PyTorch 索引
  • cu128: 使用适用于 CUDA 12.8 的 PyTorch 索引
  • cu126: 使用适用于 CUDA 12.6 的 PyTorch 索引
  • cu125: 使用适用于 CUDA 12.5 的 PyTorch 索引
  • cu124: 使用适用于 CUDA 12.4 的 PyTorch 索引
  • cu123: 使用适用于 CUDA 12.3 的 PyTorch 索引
  • cu122: 使用适用于 CUDA 12.2 的 PyTorch 索引
  • cu121: 使用适用于 CUDA 12.1 的 PyTorch 索引
  • cu120: 使用适用于 CUDA 12.0 的 PyTorch 索引
  • cu118: 使用适用于 CUDA 11.8 的 PyTorch 索引
  • cu117: 使用适用于 CUDA 11.7 的 PyTorch 索引
  • cu116: 使用适用于 CUDA 11.6 的 PyTorch 索引
  • cu115: 使用适用于 CUDA 11.5 的 PyTorch 索引
  • cu114: 使用适用于 CUDA 11.4 的 PyTorch 索引
  • cu113: 使用适用于 CUDA 11.3 的 PyTorch 索引
  • cu112: 使用适用于 CUDA 11.2 的 PyTorch 索引
  • cu111: 使用适用于 CUDA 11.1 的 PyTorch 索引
  • cu110: 使用适用于 CUDA 11.0 的 PyTorch 索引
  • cu102: 使用适用于 CUDA 10.2 的 PyTorch 索引
  • cu101: 使用适用于 CUDA 10.1 的 PyTorch 索引
  • cu100: 使用适用于 CUDA 10.0 的 PyTorch 索引
  • cu92: 使用适用于 CUDA 9.2 的 PyTorch 索引
  • cu91: 使用适用于 CUDA 9.1 的 PyTorch 索引
  • cu90: 使用适用于 CUDA 9.0 的 PyTorch 索引
  • cu80: 使用适用于 CUDA 8.0 的 PyTorch 索引
  • rocm7.1: 使用适用于 ROCm 7.1 的 PyTorch 索引
  • rocm7.0: 使用适用于 ROCm 7.0 的 PyTorch 索引
  • rocm6.4: 使用适用于 ROCm 6.4 的 PyTorch 索引
  • rocm6.3: 使用适用于 ROCm 6.3 的 PyTorch 索引
  • rocm6.2.4: 使用适用于 ROCm 6.2.4 的 PyTorch 索引
  • rocm6.2: 使用适用于 ROCm 6.2 的 PyTorch 索引
  • rocm6.1: 使用适用于 ROCm 6.1 的 PyTorch 索引
  • rocm6.0: 使用适用于 ROCm 6.0 的 PyTorch 索引
  • rocm5.7: 使用适用于 ROCm 5.7 的 PyTorch 索引
  • rocm5.6: 使用适用于 ROCm 5.6 的 PyTorch 索引
  • rocm5.5: 使用适用于 ROCm 5.5 的 PyTorch 索引
  • rocm5.4.2: 使用适用于 ROCm 5.4.2 的 PyTorch 索引
  • rocm5.4: 使用适用于 ROCm 5.4 的 PyTorch 索引
  • rocm5.3: 使用适用于 ROCm 5.3 的 PyTorch 索引
  • rocm5.2: 使用适用于 ROCm 5.2 的 PyTorch 索引
  • rocm5.1.1: 使用适用于 ROCm 5.1.1 的 PyTorch 索引
  • rocm4.2: 使用适用于 ROCm 4.2 的 PyTorch 索引
  • rocm4.1: 使用适用于 ROCm 4.1 的 PyTorch 索引
  • rocm4.0.1: 使用适用于 ROCm 4.0.1 的 PyTorch 索引
  • xpu: 使用适用于 Intel XPU 的 PyTorch 索引
--verbose, -v

使用详细输出。

您可以使用 RUST_LOG 环境变量配置细粒度日志记录。(https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html#directives

uv pip install

将包安装到环境中

用法

uv pip install [OPTIONS] <PACKAGE|--requirements <REQUIREMENTS>|--editable <EDITABLE>|--group <GROUP>>

参数

PACKAGE

安装所有列出的包。

包的顺序用于确定解析过程中的优先级。

Options (选项)

--all-extras

包含所有可选依赖项。

仅适用于 pylock.tomlpyproject.tomlsetup.pysetup.cfg 源。

--allow-insecure-host, --trusted-host allow-insecure-host

允许与主机建立不安全连接。

可以多次提供。

期望接收主机名(例如 localhost)、主机-端口对(例如 localhost:8080)或 URL(例如 https://)。

警告:此列表中的主机不会根据系统的证书存储进行验证。仅在具有受信任来源的安全网络中使用 --allow-insecure-host,因为它会绕过 SSL 验证,可能会使您面临 MITM 攻击。

也可以通过 UV_INSECURE_HOST 环境变量设置。

--break-system-packages

允许 uv 修改 EXTERNALLY-MANAGED Python 安装。

警告:--break-system-packages 旨在用于持续集成 (CI) 环境,当安装到由外部包管理器(如 apt)管理的 Python 安装中时使用。使用时应谨慎,因为此类 Python 安装明确建议不要进行其他包管理器(如 uv 或 pip)的修改。

也可以通过 UV_BREAK_SYSTEM_PACKAGES 环境变量进行设置。

--build-constraints, --build-constraint, -b build-constraints

构建源码包时,使用给定的 requirements 文件约束构建依赖项。

约束文件是类似于 requirements.txt 的文件,它们仅控制已安装需求的版本。但是,在约束文件中包含包不会触发该包的安装。

也可以通过 UV_BUILD_CONSTRAINT 环境变量设置。

--cache-dir cache-dir

缓存目录的路径。

默认在 macOS 和 Linux 上为 $XDG_CACHE_HOME/uv$HOME/.cache/uv,在 Windows 上为 %LOCALAPPDATA%\uv\cache

要查看缓存目录的位置,请运行 uv cache dir

也可以通过 UV_CACHE_DIR 环境变量设置。

--color color-choice

控制输出中颜色的使用。

默认情况下,uv 在写入终端时会自动检测对颜色的支持。

可选值

  • auto:仅在输出到支持颜色的终端或 TTY 时启用彩色输出
  • always:无论检测到的环境如何,都启用彩色输出
  • never:禁用彩色输出
--compile-bytecode, --compile

安装后将 Python 文件编译为字节码。

默认情况下,uv 不会将 Python (.py) 文件编译为字节码 (__pycache__/*.pyc);相反,编译是在模块首次导入时延迟执行的。对于启动时间至关重要的用例(例如 CLI 应用程序和 Docker 容器),可以启用此选项,以牺牲较长的安装时间换取更快的启动时间。

启用后,uv 将处理整个 site-packages 目录(包括当前操作未修改的包)以保持一致性。像 pip 一样,它也会忽略错误。

也可以通过 UV_COMPILE_BYTECODE 环境变量设置。

--config-file config-file

用于配置的 uv.toml 文件路径。

虽然 uv 配置可以包含在 pyproject.toml 文件中,但在这种上下文下是不允许的。

也可以通过 UV_CONFIG_FILE 环境变量设置。

--config-setting, --config-settings, -C config-setting

传递给 PEP 517 构建后端的设置,指定为 KEY=VALUE

--config-settings-package, --config-settings-package config-settings-package

传递给特定包的 PEP 517 构建后端的设置,指定为 PACKAGE:KEY=VALUE

--constraints, --constraint, -c constraints

使用给定的需求文件约束版本。

约束文件是类似于 requirements.txt 的文件,它们仅控制已安装需求的版本。但是,在约束文件中包含包不会触发该包的安装。

这等同于 pip 的 --constraint 选项。

也可以通过 UV_CONSTRAINT 环境变量设置。

--default-index default-index

默认包索引的 URL(默认:https://pypi.ac.cn/simple)。

接受符合 PEP 503(简单存储库 API)的存储库,或以相同格式布局的本地目录。

此标志给出的索引优先级低于通过 --index 标志指定的所有其他索引。

也可以通过 UV_DEFAULT_INDEX 环境变量设置。

--directory directory

在运行命令之前切换到指定目录。

相对路径将以给定目录为基础进行解析。

参见 --project 仅更改项目根目录。

也可以通过 UV_WORKING_DIR 环境变量设置。

--dry-run

执行试运行,即不实际安装任何内容,但解析依赖关系并打印结果计划

--editable, -e editable

根据提供的本地文件路径安装可编辑包

--exact

执行精确同步,移除无关的包。

默认情况下,安装将进行满足要求的最小必要更改。启用后,uv 将更新环境以完全匹配要求,删除未包含在要求中的包。

--exclude-newer exclude-newer

将候选包限制为给定日期之前上传的包。

接受 RFC 3339 时间戳(例如 2006-12-02T02:07:43Z)、相同格式的本地日期(例如 2006-12-02,基于系统配置的时区解析)、“友好”持续时间(例如 24 hours1 week30 days)或 ISO 8601 持续时间(例如 PT24HP7DP30D)。

持续时间不尊重本地时区的语义,始终假定一天为 24 小时(例如忽略夏令时转换)并解析为固定的秒数。不允许使用月和年等日历单位。

也可以通过 UV_EXCLUDE_NEWER 环境变量设置。

--exclude-newer-package exclude-newer-package

将特定包的候选包限制为给定日期之前上传的包。

接受 PACKAGE=DATE 格式的包-日期对,其中 DATE 是 RFC 3339 时间戳(例如 2006-12-02T02:07:43Z)、相同格式的本地日期(例如 2006-12-02,基于系统配置的时区解析)、“友好”持续时间(例如 24 hours1 week30 days)或 ISO 8601 持续时间(例如 PT24HP7DP30D)。

持续时间不尊重本地时区的语义,始终假定一天为 24 小时(例如忽略夏令时转换)并解析为固定的秒数。不允许使用月和年等日历单位。

可以为不同的包多次提供。

--excludes, --exclude excludes

使用给定的 requirements 文件从解析中排除包。

排除文件是类似于 requirements.txt 的文件,指定了要从解析中排除的包。当一个包被排除时,它将完全从依赖列表中省略,并且在解析阶段其自身依赖项将被忽略。排除是无条件的,因为需求说明符和标记会被忽略;提供文件中列出的任何包都将从所有解析的环境中省略。

也可以通过 UV_EXCLUDE 环境变量设置。

--extra extra

包含来自指定 extra 名称的可选依赖项;可以多次提供。

仅适用于 pylock.tomlpyproject.tomlsetup.pysetup.cfg 源。

--extra-index-url extra-index-url

(已弃用:请改用 --index)除 --index-url 之外要使用的额外包索引 URL。

接受符合 PEP 503(简单存储库 API)的存储库,或以相同格式布局的本地目录。

通过此标志提供的所有索引的优先级都高于 --index-url(默认为 PyPI)指定的索引。当提供多个 --extra-index-url 标志时,较早的值具有更高的优先级。

也可以通过 UV_EXTRA_INDEX_URL 环境变量设置。

除在注册表索引中找到的位置外,还要搜索候选分发包的位置。

如果是路径,则目标必须是包含顶层 wheel 文件 (.whl) 或源代码分发包(例如 .tar.gz.zip)的目录。

如果是 URL,页面必须包含符合上述格式的包文件链接的平面列表。

也可以通过 UV_FIND_LINKS 环境变量设置。

--fork-strategy fork-strategy

在跨 Python 版本和平台选择给定包的多个版本时要使用的策略。

默认情况下,uv 将优化为为每个支持的 Python 版本 (requires-python) 选择每个包的最新版本,同时最小化跨平台的选定版本数量。

fewest 下,uv 将最小化每个包的选定版本数量,优先选择与更广泛支持的 Python 版本或平台兼容的旧版本。

也可以通过 UV_FORK_STRATEGY 环境变量设置。

可选值

  • fewest:优化为为每个包选择最少数量的版本。如果旧版本与更广泛的支持 Python 版本或平台兼容,则可能优先选择旧版本
  • requires-python:优化为为每个支持的 Python 版本选择每个包的最新支持版本
--group group

pylock.tomlpyproject.toml 中安装指定的依赖项组。

如果不提供路径,则使用工作目录中的 pylock.tomlpyproject.toml

可以多次提供。

--help, -h

显示此命令的简明帮助信息

--index index

除默认索引外,解析依赖项时要使用的 URL。

接受符合 PEP 503(简单存储库 API)的存储库,或以相同格式布局的本地目录。

通过此标志提供的所有索引的优先级都高于 --default-index(默认为 PyPI)指定的索引。当提供多个 --index 标志时,较早的值具有更高的优先级。

不支持将索引名称用作值。相对路径必须使用 Unix 上的 ./../,或 Windows 上的 .\\..\\./../ 与索引名称区分开来。

也可以通过 UV_INDEX 环境变量设置。

--index-strategy index-strategy

在针对多个索引 URL 进行解析时要使用的策略。

默认情况下,uv 将在给定包可用的第一个索引处停止,并将解析限制为该第一个索引中存在的那些包 (first-index)。这可以防止“依赖混淆”攻击,攻击者可以在该攻击中以相同的名称将恶意包上传到备用索引。

也可以通过 UV_INDEX_STRATEGY 环境变量设置。

可选值

  • first-index:仅使用第一个返回给定包名称匹配结果的索引中的结果
  • unsafe-first-match:搜索跨所有索引的每个包名称,在转到下一个索引之前耗尽第一个索引中的版本
  • unsafe-best-match:搜索跨所有索引的每个包名称,优先选择找到的“最佳”版本。如果包版本存在于多个索引中,则仅查看第一个索引的条目
--index-url, -i index-url

(已弃用:请改用 --default-index)Python 包索引的 URL(默认:https://pypi.ac.cn/simple)。

接受符合 PEP 503(简单存储库 API)的存储库,或以相同格式布局的本地目录。

此标志给出的索引优先级低于通过 --extra-index-url 标志指定的所有其他索引。

也可以通过 UV_INDEX_URL 环境变量设置。

--keyring-provider keyring-provider

尝试使用 keyring 进行索引 URL 的身份验证。

目前,仅支持 --keyring-provider subprocess,它将 uv 配置为使用 keyring CLI 来处理身份验证。

默认为 disabled

也可以通过 UV_KEYRING_PROVIDER 环境变量设置。

可选值

  • disabled:不使用密钥环进行凭据查找
  • subprocess:使用 keyring 命令进行凭据查找

从全局缓存安装包时要使用的方法。

默认在 macOS 和 Linux 上为 clone(也称为写时复制),在 Windows 上为 hardlink

警告:不建议使用符号链接链接模式,因为它们会在缓存和目标环境之间创建紧密的耦合。例如,清除缓存 (uv cache clean) 将通过移除底层源文件来破坏所有已安装的包。请谨慎使用符号链接。

也可以通过 UV_LINK_MODE 环境变量设置。

可选值

  • clone:将包从源克隆(即写时复制)到目标
  • copy:将包从源复制到目标
  • hardlink:将包从源硬链接到目标
  • symlink:将包从源符号链接到目标
--managed-python

要求使用 uv 管理的 Python 版本 [环境变量: UV_MANAGED_PYTHON=]

默认情况下,uv 优先使用其管理的 Python 版本。但是,如果未安装 uv 管理的 Python,它将使用系统 Python 版本。此选项将禁用系统 Python 版本的调用。

--native-tls

是否从平台的原生存储中加载 TLS 证书 [环境变量: UV_NATIVE_TLS=]

默认情况下,uv 从绑定的 webpki-roots crate 中加载证书。webpki-roots 是一组来自 Mozilla 的可靠信任根,在 uv 中包含它们可提高可移植性和性能(特别是在 macOS 上)。

然而,在某些情况下,您可能希望使用平台的原生证书存储,特别是当您依赖于系统证书存储中包含的公司信任根(例如强制代理)时。

--no-binary no-binary

不安装预构建的 wheel。

给定的包将从源代码构建和安装。如果可用,解析器仍将使用预构建的 wheel 来提取包元数据。

可以提供多个包。使用 :all: 禁用所有包的二进制文件。使用 :none: 清除之前指定的包。

--no-break-system-packages
--no-build

不构建源代码分发包。

启用后,解析将不会运行任意 Python 代码。已构建的源代码分发包的缓存 wheel 将被重用,但需要构建分发包的操作将报错退出。

--only-binary :all: 的别名。

--no-build-isolation

构建源代码分发包时禁用隔离。

假定 PEP 518 指定的构建依赖项已安装。

也可以通过 UV_NO_BUILD_ISOLATION 环境变量设置。

--no-build-isolation-package no-build-isolation-package

为特定包构建源代码分发包时禁用隔离。

假定包的 PEP 518 指定的构建依赖项已安装。

--no-cache, --no-cache-dir, -n

避免从缓存中读取或写入缓存,而是在操作期间使用临时目录

也可以通过 UV_NO_CACHE 环境变量设置。

--no-config

避免发现配置文件(pyproject.tomluv.toml)。

通常,会在当前目录、父目录或用户配置目录中发现配置文件。

也可以通过 UV_NO_CONFIG 环境变量设置。

--no-deps

忽略包的依赖关系,仅安装命令行或要求文件中明确列出的包

--no-index

忽略注册表索引(例如 PyPI),而是依赖直接 URL 依赖项和通过 --find-links 提供的依赖项

--no-managed-python

禁用对 uv 管理的 Python 版本的使用 [环境变量: UV_NO_MANAGED_PYTHON=]

相反,uv 将在系统上搜索合适的 Python 版本。

--no-progress

隐藏所有进度输出 [环境变量: UV_NO_PROGRESS=]

例如,微调器或进度条。

--no-python-downloads

禁用 Python 的自动下载。

--no-sources

解析依赖项时忽略 tool.uv.sources 表。用于根据标准兼容、可发布的包元数据进行锁定,而不是使用任何工作空间、Git、URL 或本地路径源

也可以通过 UV_NO_SOURCES 环境变量设置。

--no-sources-package no-sources-package

不要为指定包使用 tool.uv.sources 表中的源

也可以通过 UV_NO_SOURCES_PACKAGE 环境变量设置。

--no-verify-hashes

禁用对要求文件中哈希值的验证。

默认情况下,uv 会验证要求文件中任何可用的哈希值,但不会要求所有要求都有关联的哈希值。要强制执行哈希验证,请使用 --require-hashes

也可以通过 UV_NO_VERIFY_HASHES 环境变量进行设置。

--offline

禁用网络访问 [环境变量: UV_OFFLINE=]

禁用时,uv 将仅使用本地缓存的数据和本地可用的文件。

--only-binary only-binary

仅使用预构建的 wheels;不要构建源代码分发包。

启用后,解析过程将不会运行来自给定包的代码。已构建的源代码分发包的缓存 wheels 将被重用,但需要构建分发包的操作将报错退出。

可以提供多个包。使用 :all: 禁用所有包的二进制文件。使用 :none: 清除之前指定的包。

--overrides, --override overrides

使用给定的 requirements 文件覆盖版本。

覆盖文件是类似于 requirements.txt 的文件,它们强制安装特定版本的需求,无论任何组成包声明了什么需求,也无论这是否会被视为无效解析。

约束是加性的,即它们与组成包的需求相结合;而覆盖是绝对的,即它们完全替换了组成包的需求。

也可以通过 UV_OVERRIDE 环境变量设置。

--prefix prefix

将包安装到指定目录下的 libbin 和其他顶级文件夹中,就像在该位置存在虚拟环境一样。

通常情况下,建议使用 --python 安装到替代环境中,因为通过 --prefix 安装的脚本和其他工件将引用安装解释器,而不是引用 --prefix 目录中添加的任何解释器,这导致它们不可移植。

与其他安装操作不同,此命令不需要发现现有的 Python 环境,且仅搜索用于包解析的 Python 解释器。如果找不到合适的 Python 解释器,uv 将安装一个。要禁用此功能,请添加 --no-python-downloads

--prerelease prerelease

考虑预发布版本时要使用的策略。

默认情况下,uv 将接受 发布预发布版本的包,以及在声明的需求说明符中包含显式预发布标记的一方需求 (if-necessary-or-explicit)。

也可以通过 UV_PRERELEASE 环境变量设置。

可选值

  • disallow:不允许所有预发布版本
  • allow:允许所有预发布版本
  • if-necessary:如果包的所有版本都是预发布版本,则允许预发布版本
  • explicit:允许在版本需求中具有显式预发布标记的一方包的预发布版本
  • if-necessary-or-explicit:如果包的所有版本都是预发布版本,或者如果包在版本需求中具有显式预发布标记,则允许预发布版本
--project project

在给定目录中发现项目。

所有 pyproject.tomluv.toml.python-version 文件都将通过从项目根目录向上遍历目录树来发现,项目的虚拟环境 (.venv) 也是如此。

其他命令行参数(例如相对路径)将相对于当前工作目录进行解析。

参见 --directory 以完全更改工作目录。

当在 uv pip 接口中使用时,此设置无效。

也可以通过 UV_PROJECT 环境变量设置。

--python, -p python

应安装包的 Python 解释器。

默认情况下,安装需要一个虚拟环境。可以提供备用 Python 的路径,但这仅建议在持续集成 (CI) 环境中使用,且应谨慎使用,因为它会修改系统 Python 安装。

请参阅 uv python 以了解有关 Python 发现和支持的请求格式的详细信息。

也可以通过 UV_PYTHON 环境变量设置。

--python-platform python-platform

应该为其安装需求的目标平台。

表示为“目标三元组”,这是一个描述目标平台的字符串,包括 CPU、供应商和操作系统名称,例如 x86_64-unknown-linux-gnuaarch64-apple-darwin

当针对 macOS (Darwin) 时,默认最小版本为 13.0。使用 MACOSX_DEPLOYMENT_TARGET 指定不同的最小版本,例如 14.0

当针对 iOS 时,默认最小版本为 13.0。使用 IPHONEOS_DEPLOYMENT_TARGET 指定不同的最小版本,例如 14.0

当针对 Android 时,默认最小 Android API 级别为 24。使用 ANDROID_API_LEVEL 指定不同的最小版本,例如 26

警告:指定时,uv 将选择与 目标 平台兼容的 wheel;因此,安装的分发包可能与 当前 平台不兼容。相反,从源代码构建的任何分发包都可能与 目标 平台不兼容,因为它们是为 当前 平台构建的。--python-platform 选项旨在用于高级用例。

可选值

  • windowsx86_64-pc-windows-msvc 的别名,Windows 的默认目标
  • linuxx86_64-unknown-linux-gnu 的别名,Linux 的默认目标
  • macosaarch64-apple-darwin 的别名,macOS 的默认目标
  • x86_64-pc-windows-msvc:64 位 x86 Windows 目标
  • aarch64-pc-windows-msvc:ARM64 Windows 目标
  • i686-pc-windows-msvc:32 位 x86 Windows 目标
  • x86_64-unknown-linux-gnu:x86 Linux 目标。等效于 x86_64-manylinux_2_28
  • aarch64-apple-darwin:ARM 架构 macOS 目标,如 Apple Silicon 设备上所见
  • x86_64-apple-darwin:x86 macOS 目标
  • aarch64-unknown-linux-gnu:ARM64 Linux 目标。等效于 aarch64-manylinux_2_28
  • aarch64-unknown-linux-musl:ARM64 Linux 目标
  • x86_64-unknown-linux-muslx86_64 Linux 目标
  • riscv64-unknown-linux:RISCV64 Linux 目标
  • x86_64-manylinux2014manylinux2014 平台的 x86_64 目标。等效于 x86_64-manylinux_2_17
  • x86_64-manylinux_2_17manylinux_2_17 平台的 x86_64 目标
  • x86_64-manylinux_2_28manylinux_2_28 平台的 x86_64 目标
  • x86_64-manylinux_2_31manylinux_2_31 平台的 x86_64 目标
  • x86_64-manylinux_2_32manylinux_2_32 平台的 x86_64 目标
  • x86_64-manylinux_2_33manylinux_2_33 平台的 x86_64 目标
  • x86_64-manylinux_2_34manylinux_2_34 平台的 x86_64 目标
  • x86_64-manylinux_2_35manylinux_2_35 平台的 x86_64 目标
  • x86_64-manylinux_2_36manylinux_2_36 平台的 x86_64 目标
  • x86_64-manylinux_2_37manylinux_2_37 平台的 x86_64 目标
  • x86_64-manylinux_2_38manylinux_2_38 平台的 x86_64 目标
  • x86_64-manylinux_2_39manylinux_2_39 平台的 x86_64 目标
  • x86_64-manylinux_2_40manylinux_2_40 平台的 x86_64 目标
  • aarch64-manylinux2014manylinux2014 平台的 ARM64 目标。等效于 aarch64-manylinux_2_17
  • aarch64-manylinux_2_17manylinux_2_17 平台的 ARM64 目标
  • aarch64-manylinux_2_28manylinux_2_28 平台的 ARM64 目标
  • aarch64-manylinux_2_31manylinux_2_31 平台的 ARM64 目标
  • aarch64-manylinux_2_32manylinux_2_32 平台的 ARM64 目标
  • aarch64-manylinux_2_33manylinux_2_33 平台的 ARM64 目标
  • aarch64-manylinux_2_34manylinux_2_34 平台的 ARM64 目标
  • aarch64-manylinux_2_35manylinux_2_35 平台的 ARM64 目标
  • aarch64-manylinux_2_36manylinux_2_36 平台的 ARM64 目标
  • aarch64-manylinux_2_37manylinux_2_37 平台的 ARM64 目标
  • aarch64-manylinux_2_38manylinux_2_38 平台的 ARM64 目标
  • aarch64-manylinux_2_39manylinux_2_39 平台的 ARM64 目标
  • aarch64-manylinux_2_40manylinux_2_40 平台的 ARM64 目标
  • aarch64-linux-android:ARM64 Android 目标
  • x86_64-linux-androidx86_64 Android 目标
  • wasm32-pyodide2024:使用 Pyodide 2024 平台的 wasm32 目标。旨在与 Python 3.12 一起使用
  • arm64-apple-ios:iOS 设备的 ARM64 目标
  • arm64-apple-ios-simulator:iOS 模拟器的 ARM64 目标
  • x86_64-apple-ios-simulator:iOS 模拟器的 x86_64 目标
--python-version python-version

要求应支持的最小 Python 版本(例如 3.73.7.9)。

如果省略补丁版本,则假定为最小补丁版本。例如,3.7 被映射为 3.7.0

--quiet, -q

使用安静输出。

重复此选项,例如 -qq,将启用静默模式,其中 uv 不会将任何输出写入标准输出。

--refresh

刷新所有缓存数据

--refresh-package refresh-package

刷新特定包的缓存数据

--reinstall, --force-reinstall

重新安装所有包,无论它们是否已安装。暗示 --refresh

--reinstall-package reinstall-package

重新安装特定包,无论它是否已安装。暗示 --refresh-package

--require-hashes

要求每个要求都有匹配的哈希值。

默认情况下,uv 会验证要求文件中任何可用的哈希值,但不会要求所有要求都有关联的哈希值。

当启用 --require-hashes 时,*所有*要求必须包含哈希值或哈希集,且*所有*要求必须固定到精确版本(例如 ==1.0.0),或通过直接 URL 指定。

哈希检查模式引入了许多额外的限制

  • 不支持 Git 依赖。 - 不支持可编辑安装。 - 不支持本地依赖,除非它们指向特定的 wheel (.whl) 或源代码归档 (.zip, .tar.gz),而不是目录。

也可以通过 UV_REQUIRE_HASHES 环境变量进行设置。

--requirements, --requirement, -r requirements

安装给定文件中列出的包。

支持以下格式:requirements.txt、具有内联元数据的 .py 文件、pylock.tomlpyproject.tomlsetup.pysetup.cfg

如果提供了 pyproject.tomlsetup.pysetup.cfg 文件,uv 将提取相关项目的要求。

如果提供了 -,则将从 stdin 读取要求。

--resolution resolution

在为给定包需求选择不同的兼容版本时要使用的策略。

默认情况下,uv 将使用每个包的最新兼容版本 (highest)。

也可以通过 UV_RESOLUTION 环境变量设置。

可选值

  • highest:解析每个包的最高兼容版本
  • lowest:解析每个包的最低兼容版本
  • lowest-direct:解析任何直接依赖项的最低兼容版本,以及任何传递依赖项的最高兼容版本
--strict

完成安装后验证 Python 环境,以检测缺少依赖项的包或其他问题

--system

将包安装到系统 Python 环境中。

默认情况下,uv 安装到当前工作目录或任何父目录中的虚拟环境中。--system 选项指示 uv 改为使用在系统 PATH 中找到的第一个 Python。

警告:--system 旨在用于持续集成 (CI) 环境,且应谨慎使用,因为它会修改系统 Python 安装。

也可以通过 UV_SYSTEM_PYTHON 环境变量进行设置。

--target, -t target

将包安装到指定的目录,而不是虚拟或系统 Python 环境中。包将被安装在该目录的顶层。

与其他安装操作不同,此命令不需要发现现有的 Python 环境,且仅搜索用于包解析的 Python 解释器。如果找不到合适的 Python 解释器,uv 将安装一个。要禁用此功能,请添加 --no-python-downloads

--torch-backend torch-backend

获取 PyTorch 生态系统中的包时使用的后端(例如 cpucu126auto

设置时,uv 将忽略 PyTorch 生态系统中包的已配置索引 URL,并将改用定义的后端。

例如,当设置为 cpu 时,uv 将使用仅限 CPU 的 PyTorch 索引;当设置为 cu126 时,uv 将使用适用于 CUDA 12.6 的 PyTorch 索引。

auto 模式将尝试根据当前安装的 CUDA 驱动程序检测适当的 PyTorch 索引。

此选项处于预览阶段,可能在任何未来版本中更改。

也可以通过 UV_TORCH_BACKEND 环境变量设置。

可选值

  • auto: 根据操作系统和 CUDA 驱动版本选择适当的 PyTorch 索引
  • cpu: 使用仅限 CPU 的 PyTorch 索引
  • cu130: 使用适用于 CUDA 13.0 的 PyTorch 索引
  • cu129: 使用适用于 CUDA 12.9 的 PyTorch 索引
  • cu128: 使用适用于 CUDA 12.8 的 PyTorch 索引
  • cu126: 使用适用于 CUDA 12.6 的 PyTorch 索引
  • cu125: 使用适用于 CUDA 12.5 的 PyTorch 索引
  • cu124: 使用适用于 CUDA 12.4 的 PyTorch 索引
  • cu123: 使用适用于 CUDA 12.3 的 PyTorch 索引
  • cu122: 使用适用于 CUDA 12.2 的 PyTorch 索引
  • cu121: 使用适用于 CUDA 12.1 的 PyTorch 索引
  • cu120: 使用适用于 CUDA 12.0 的 PyTorch 索引
  • cu118: 使用适用于 CUDA 11.8 的 PyTorch 索引
  • cu117: 使用适用于 CUDA 11.7 的 PyTorch 索引
  • cu116: 使用适用于 CUDA 11.6 的 PyTorch 索引
  • cu115: 使用适用于 CUDA 11.5 的 PyTorch 索引
  • cu114: 使用适用于 CUDA 11.4 的 PyTorch 索引
  • cu113: 使用适用于 CUDA 11.3 的 PyTorch 索引
  • cu112: 使用适用于 CUDA 11.2 的 PyTorch 索引
  • cu111: 使用适用于 CUDA 11.1 的 PyTorch 索引
  • cu110: 使用适用于 CUDA 11.0 的 PyTorch 索引
  • cu102: 使用适用于 CUDA 10.2 的 PyTorch 索引
  • cu101: 使用适用于 CUDA 10.1 的 PyTorch 索引
  • cu100: 使用适用于 CUDA 10.0 的 PyTorch 索引
  • cu92: 使用适用于 CUDA 9.2 的 PyTorch 索引
  • cu91: 使用适用于 CUDA 9.1 的 PyTorch 索引
  • cu90: 使用适用于 CUDA 9.0 的 PyTorch 索引
  • cu80: 使用适用于 CUDA 8.0 的 PyTorch 索引
  • rocm7.1: 使用适用于 ROCm 7.1 的 PyTorch 索引
  • rocm7.0: 使用适用于 ROCm 7.0 的 PyTorch 索引
  • rocm6.4: 使用适用于 ROCm 6.4 的 PyTorch 索引
  • rocm6.3: 使用适用于 ROCm 6.3 的 PyTorch 索引
  • rocm6.2.4: 使用适用于 ROCm 6.2.4 的 PyTorch 索引
  • rocm6.2: 使用适用于 ROCm 6.2 的 PyTorch 索引
  • rocm6.1: 使用适用于 ROCm 6.1 的 PyTorch 索引
  • rocm6.0: 使用适用于 ROCm 6.0 的 PyTorch 索引
  • rocm5.7: 使用适用于 ROCm 5.7 的 PyTorch 索引
  • rocm5.6: 使用适用于 ROCm 5.6 的 PyTorch 索引
  • rocm5.5: 使用适用于 ROCm 5.5 的 PyTorch 索引
  • rocm5.4.2: 使用适用于 ROCm 5.4.2 的 PyTorch 索引
  • rocm5.4: 使用适用于 ROCm 5.4 的 PyTorch 索引
  • rocm5.3: 使用适用于 ROCm 5.3 的 PyTorch 索引
  • rocm5.2: 使用适用于 ROCm 5.2 的 PyTorch 索引
  • rocm5.1.1: 使用适用于 ROCm 5.1.1 的 PyTorch 索引
  • rocm4.2: 使用适用于 ROCm 4.2 的 PyTorch 索引
  • rocm4.1: 使用适用于 ROCm 4.1 的 PyTorch 索引
  • rocm4.0.1: 使用适用于 ROCm 4.0.1 的 PyTorch 索引
  • xpu: 使用适用于 Intel XPU 的 PyTorch 索引
--upgrade, -U

允许包升级,忽略任何现有输出文件中的固定版本。暗示 --refresh

--upgrade-package, -P upgrade-package

允许升级特定包,忽略任何现有输出文件中的固定版本。暗示 --refresh-package

--user
--verbose, -v

使用详细输出。

您可以使用 RUST_LOG 环境变量配置细粒度日志记录。(https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html#directives

uv pip uninstall

从环境中卸载包

用法

uv pip uninstall [OPTIONS] <PACKAGE|--requirements <REQUIREMENTS>>

参数

PACKAGE

卸载所有列出的包

Options (选项)

--allow-insecure-host, --trusted-host allow-insecure-host

允许与主机建立不安全连接。

可以多次提供。

期望接收主机名(例如 localhost)、主机-端口对(例如 localhost:8080)或 URL(例如 https://)。

警告:此列表中的主机不会根据系统的证书存储进行验证。仅在具有受信任来源的安全网络中使用 --allow-insecure-host,因为它会绕过 SSL 验证,可能会使您面临 MITM 攻击。

也可以通过 UV_INSECURE_HOST 环境变量设置。

--break-system-packages

允许 uv 修改 EXTERNALLY-MANAGED Python 安装。

警告:--break-system-packages 旨在用于持续集成 (CI) 环境,当安装到由外部包管理器(如 apt)管理的 Python 安装中时使用。使用时应谨慎,因为此类 Python 安装明确建议不要进行其他包管理器(如 uv 或 pip)的修改。

也可以通过 UV_BREAK_SYSTEM_PACKAGES 环境变量进行设置。

--cache-dir cache-dir

缓存目录的路径。

默认在 macOS 和 Linux 上为 $XDG_CACHE_HOME/uv$HOME/.cache/uv,在 Windows 上为 %LOCALAPPDATA%\uv\cache

要查看缓存目录的位置,请运行 uv cache dir

也可以通过 UV_CACHE_DIR 环境变量设置。

--color color-choice

控制输出中颜色的使用。

默认情况下,uv 在写入终端时会自动检测对颜色的支持。

可选值

  • auto:仅在输出到支持颜色的终端或 TTY 时启用彩色输出
  • always:无论检测到的环境如何,都启用彩色输出
  • never:禁用彩色输出
--config-file config-file

用于配置的 uv.toml 文件路径。

虽然 uv 配置可以包含在 pyproject.toml 文件中,但在这种上下文下是不允许的。

也可以通过 UV_CONFIG_FILE 环境变量设置。

--directory directory

在运行命令之前切换到指定目录。

相对路径将以给定目录为基础进行解析。

参见 --project 仅更改项目根目录。

也可以通过 UV_WORKING_DIR 环境变量设置。

--dry-run

执行试运行,即不实际卸载任何内容,但打印结果计划

--help, -h

显示此命令的简明帮助信息

--keyring-provider keyring-provider

尝试使用 keyring 对远程要求文件进行身份验证。

目前,仅支持 --keyring-provider subprocess,它将 uv 配置为使用 keyring CLI 来处理身份验证。

默认为 disabled

也可以通过 UV_KEYRING_PROVIDER 环境变量设置。

可选值

  • disabled:不使用密钥环进行凭据查找
  • subprocess:使用 keyring 命令进行凭据查找
--managed-python

要求使用 uv 管理的 Python 版本 [环境变量: UV_MANAGED_PYTHON=]

默认情况下,uv 优先使用其管理的 Python 版本。但是,如果未安装 uv 管理的 Python,它将使用系统 Python 版本。此选项将禁用系统 Python 版本的调用。

--native-tls

是否从平台的原生存储中加载 TLS 证书 [环境变量: UV_NATIVE_TLS=]

默认情况下,uv 从绑定的 webpki-roots crate 中加载证书。webpki-roots 是一组来自 Mozilla 的可靠信任根,在 uv 中包含它们可提高可移植性和性能(特别是在 macOS 上)。

然而,在某些情况下,您可能希望使用平台的原生证书存储,特别是当您依赖于系统证书存储中包含的公司信任根(例如强制代理)时。

--no-break-system-packages
--no-cache, --no-cache-dir, -n

避免从缓存中读取或写入缓存,而是在操作期间使用临时目录

也可以通过 UV_NO_CACHE 环境变量设置。

--no-config

避免发现配置文件(pyproject.tomluv.toml)。

通常,会在当前目录、父目录或用户配置目录中发现配置文件。

也可以通过 UV_NO_CONFIG 环境变量设置。

--no-managed-python

禁用对 uv 管理的 Python 版本的使用 [环境变量: UV_NO_MANAGED_PYTHON=]

相反,uv 将在系统上搜索合适的 Python 版本。

--no-progress

隐藏所有进度输出 [环境变量: UV_NO_PROGRESS=]

例如,微调器或进度条。

--no-python-downloads

禁用 Python 的自动下载。

--offline

禁用网络访问 [环境变量: UV_OFFLINE=]

禁用时,uv 将仅使用本地缓存的数据和本地可用的文件。

--prefix prefix

从指定的 --prefix 目录卸载包

--project project

在给定目录中发现项目。

所有 pyproject.tomluv.toml.python-version 文件都将通过从项目根目录向上遍历目录树来发现,项目的虚拟环境 (.venv) 也是如此。

其他命令行参数(例如相对路径)将相对于当前工作目录进行解析。

参见 --directory 以完全更改工作目录。

当在 uv pip 接口中使用时,此设置无效。

也可以通过 UV_PROJECT 环境变量设置。

--python, -p python

应从中卸载包的 Python 解释器。

默认情况下,卸载需要一个虚拟环境。可以提供备用 Python 的路径,但这仅建议在持续集成 (CI) 环境中使用,且应谨慎使用,因为它会修改系统 Python 安装。

请参阅 uv python 以了解有关 Python 发现和支持的请求格式的详细信息。

也可以通过 UV_PYTHON 环境变量设置。

--quiet, -q

使用安静输出。

重复此选项,例如 -qq,将启用静默模式,其中 uv 不会将任何输出写入标准输出。

--requirements, --requirement, -r requirements

卸载给定文件中列出的包。

支持以下格式:requirements.txt、具有内联元数据的 .py 文件、pylock.tomlpyproject.tomlsetup.pysetup.cfg

--system

使用系统 Python 卸载包。

默认情况下,uv 从当前工作目录或任何父目录中的虚拟环境卸载。--system 选项指示 uv 改为使用在系统 PATH 中找到的第一个 Python。

警告:--system 旨在用于持续集成 (CI) 环境,且应谨慎使用,因为它会修改系统 Python 安装。

也可以通过 UV_SYSTEM_PYTHON 环境变量进行设置。

--target, -t target

从指定的 --target 目录卸载包

--verbose, -v

使用详细输出。

您可以使用 RUST_LOG 环境变量配置细粒度日志记录。(https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html#directives

uv pip freeze

以 requirements 格式列出安装在环境中的包

用法

uv pip freeze [OPTIONS]

Options (选项)

--allow-insecure-host, --trusted-host allow-insecure-host

允许与主机建立不安全连接。

可以多次提供。

期望接收主机名(例如 localhost)、主机-端口对(例如 localhost:8080)或 URL(例如 https://)。

警告:此列表中的主机不会根据系统的证书存储进行验证。仅在具有受信任来源的安全网络中使用 --allow-insecure-host,因为它会绕过 SSL 验证,可能会使您面临 MITM 攻击。

也可以通过 UV_INSECURE_HOST 环境变量设置。

--cache-dir cache-dir

缓存目录的路径。

默认在 macOS 和 Linux 上为 $XDG_CACHE_HOME/uv$HOME/.cache/uv,在 Windows 上为 %LOCALAPPDATA%\uv\cache

要查看缓存目录的位置,请运行 uv cache dir

也可以通过 UV_CACHE_DIR 环境变量设置。

--color color-choice

控制输出中颜色的使用。

默认情况下,uv 在写入终端时会自动检测对颜色的支持。

可选值

  • auto:仅在输出到支持颜色的终端或 TTY 时启用彩色输出
  • always:无论检测到的环境如何,都启用彩色输出
  • never:禁用彩色输出
--config-file config-file

用于配置的 uv.toml 文件路径。

虽然 uv 配置可以包含在 pyproject.toml 文件中,但在这种上下文下是不允许的。

也可以通过 UV_CONFIG_FILE 环境变量设置。

--directory directory

在运行命令之前切换到指定目录。

相对路径将以给定目录为基础进行解析。

参见 --project 仅更改项目根目录。

也可以通过 UV_WORKING_DIR 环境变量设置。

--exclude exclude

从输出中排除指定的包

--exclude-editable

从输出中排除任何可编辑包

--help, -h

显示此命令的简明帮助信息

--managed-python

要求使用 uv 管理的 Python 版本 [环境变量: UV_MANAGED_PYTHON=]

默认情况下,uv 优先使用其管理的 Python 版本。但是,如果未安装 uv 管理的 Python,它将使用系统 Python 版本。此选项将禁用系统 Python 版本的调用。

--native-tls

是否从平台的原生存储中加载 TLS 证书 [环境变量: UV_NATIVE_TLS=]

默认情况下,uv 从绑定的 webpki-roots crate 中加载证书。webpki-roots 是一组来自 Mozilla 的可靠信任根,在 uv 中包含它们可提高可移植性和性能(特别是在 macOS 上)。

然而,在某些情况下,您可能希望使用平台的原生证书存储,特别是当您依赖于系统证书存储中包含的公司信任根(例如强制代理)时。

--no-cache, --no-cache-dir, -n

避免从缓存中读取或写入缓存,而是在操作期间使用临时目录

也可以通过 UV_NO_CACHE 环境变量设置。

--no-config

避免发现配置文件(pyproject.tomluv.toml)。

通常,会在当前目录、父目录或用户配置目录中发现配置文件。

也可以通过 UV_NO_CONFIG 环境变量设置。

--no-managed-python

禁用对 uv 管理的 Python 版本的使用 [环境变量: UV_NO_MANAGED_PYTHON=]

相反,uv 将在系统上搜索合适的 Python 版本。

--no-progress

隐藏所有进度输出 [环境变量: UV_NO_PROGRESS=]

例如,微调器或进度条。

--no-python-downloads

禁用 Python 的自动下载。

--offline

禁用网络访问 [环境变量: UV_OFFLINE=]

禁用时,uv 将仅使用本地缓存的数据和本地可用的文件。

--path paths

限制为指定的安装路径以列出包(可以多次使用)

--prefix prefix

列出指定 --prefix 目录中的包

--project project

在给定目录中发现项目。

所有 pyproject.tomluv.toml.python-version 文件都将通过从项目根目录向上遍历目录树来发现,项目的虚拟环境 (.venv) 也是如此。

其他命令行参数(例如相对路径)将相对于当前工作目录进行解析。

参见 --directory 以完全更改工作目录。

当在 uv pip 接口中使用时,此设置无效。

也可以通过 UV_PROJECT 环境变量设置。

--python, -p python

应列出包的 Python 解释器。

默认情况下,uv 列出虚拟环境中的包,但如果未找到虚拟环境,则会显示系统 Python 环境中的包。

请参阅 uv python 以了解有关 Python 发现和支持的请求格式的详细信息。

也可以通过 UV_PYTHON 环境变量设置。

--quiet, -q

使用安静输出。

重复此选项,例如 -qq,将启用静默模式,其中 uv 不会将任何输出写入标准输出。

--strict

验证 Python 环境,以检测缺失依赖项和其他问题

--system

列出系统 Python 环境中的包。

禁用虚拟环境发现。

有关 Python 发现的详细信息,请参阅 uv python

也可以通过 UV_SYSTEM_PYTHON 环境变量进行设置。

--target, -t target

列出指定 --target 目录中的包

--verbose, -v

使用详细输出。

您可以使用 RUST_LOG 环境变量配置细粒度日志记录。(https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html#directives

uv pip list

以表格格式列出安装在环境中的包

用法

uv pip list [OPTIONS]

Options (选项)

--allow-insecure-host, --trusted-host allow-insecure-host

允许与主机建立不安全连接。

可以多次提供。

期望接收主机名(例如 localhost)、主机-端口对(例如 localhost:8080)或 URL(例如 https://)。

警告:此列表中的主机不会根据系统的证书存储进行验证。仅在具有受信任来源的安全网络中使用 --allow-insecure-host,因为它会绕过 SSL 验证,可能会使您面临 MITM 攻击。

也可以通过 UV_INSECURE_HOST 环境变量设置。

--cache-dir cache-dir

缓存目录的路径。

默认在 macOS 和 Linux 上为 $XDG_CACHE_HOME/uv$HOME/.cache/uv,在 Windows 上为 %LOCALAPPDATA%\uv\cache

要查看缓存目录的位置,请运行 uv cache dir

也可以通过 UV_CACHE_DIR 环境变量设置。

--color color-choice

控制输出中颜色的使用。

默认情况下,uv 在写入终端时会自动检测对颜色的支持。

可选值

  • auto:仅在输出到支持颜色的终端或 TTY 时启用彩色输出
  • always:无论检测到的环境如何,都启用彩色输出
  • never:禁用彩色输出
--config-file config-file

用于配置的 uv.toml 文件路径。

虽然 uv 配置可以包含在 pyproject.toml 文件中,但在这种上下文下是不允许的。

也可以通过 UV_CONFIG_FILE 环境变量设置。

--default-index default-index

默认包索引的 URL(默认:https://pypi.ac.cn/simple)。

接受符合 PEP 503(简单存储库 API)的存储库,或以相同格式布局的本地目录。

此标志给出的索引优先级低于通过 --index 标志指定的所有其他索引。

也可以通过 UV_DEFAULT_INDEX 环境变量设置。

--directory directory

在运行命令之前切换到指定目录。

相对路径将以给定目录为基础进行解析。

参见 --project 仅更改项目根目录。

也可以通过 UV_WORKING_DIR 环境变量设置。

--editable, -e

仅包含可编辑项目

--exclude exclude

从输出中排除指定的包

--exclude-editable

从输出中排除任何可编辑包

--exclude-newer exclude-newer

将候选包限制为给定日期之前上传的包。

接受 RFC 3339 时间戳(例如 2006-12-02T02:07:43Z)、相同格式的本地日期(例如 2006-12-02,基于系统配置的时区解析)、“友好”持续时间(例如 24 hours1 week30 days)或 ISO 8601 持续时间(例如 PT24HP7DP30D)。

持续时间不尊重本地时区的语义,始终假定一天为 24 小时(例如忽略夏令时转换)并解析为固定的秒数。不允许使用月和年等日历单位。

也可以通过 UV_EXCLUDE_NEWER 环境变量设置。

--extra-index-url extra-index-url

(已弃用:请改用 --index)除 --index-url 之外要使用的额外包索引 URL。

接受符合 PEP 503(简单存储库 API)的存储库,或以相同格式布局的本地目录。

通过此标志提供的所有索引的优先级都高于 --index-url(默认为 PyPI)指定的索引。当提供多个 --extra-index-url 标志时,较早的值具有更高的优先级。

也可以通过 UV_EXTRA_INDEX_URL 环境变量设置。

除在注册表索引中找到的位置外,还要搜索候选分发包的位置。

如果是路径,则目标必须是包含顶层 wheel 文件 (.whl) 或源代码分发包(例如 .tar.gz.zip)的目录。

如果是 URL,页面必须包含符合上述格式的包文件链接的平面列表。

也可以通过 UV_FIND_LINKS 环境变量设置。

--format format

选择输出格式

[默认: columns]

可选值

  • columns:以人类可读的表格显示包列表
  • freeze:以 pip freeze 类似的格式显示包列表,每行一个包及其版本
  • json:以机器可读的 JSON 格式显示包列表
--help, -h

显示此命令的简明帮助信息

--index index

除默认索引外,解析依赖项时要使用的 URL。

接受符合 PEP 503(简单存储库 API)的存储库,或以相同格式布局的本地目录。

通过此标志提供的所有索引的优先级都高于 --default-index(默认为 PyPI)指定的索引。当提供多个 --index 标志时,较早的值具有更高的优先级。

不支持将索引名称用作值。相对路径必须使用 Unix 上的 ./../,或 Windows 上的 .\\..\\./../ 与索引名称区分开来。

也可以通过 UV_INDEX 环境变量设置。

--index-strategy index-strategy

在针对多个索引 URL 进行解析时要使用的策略。

默认情况下,uv 将在给定包可用的第一个索引处停止,并将解析限制为该第一个索引中存在的那些包 (first-index)。这可以防止“依赖混淆”攻击,攻击者可以在该攻击中以相同的名称将恶意包上传到备用索引。

也可以通过 UV_INDEX_STRATEGY 环境变量设置。

可选值

  • first-index:仅使用第一个返回给定包名称匹配结果的索引中的结果
  • unsafe-first-match:搜索跨所有索引的每个包名称,在转到下一个索引之前耗尽第一个索引中的版本
  • unsafe-best-match:搜索跨所有索引的每个包名称,优先选择找到的“最佳”版本。如果包版本存在于多个索引中,则仅查看第一个索引的条目
--index-url, -i index-url

(已弃用:请改用 --default-index)Python 包索引的 URL(默认:https://pypi.ac.cn/simple)。

接受符合 PEP 503(简单存储库 API)的存储库,或以相同格式布局的本地目录。

此标志给出的索引优先级低于通过 --extra-index-url 标志指定的所有其他索引。

也可以通过 UV_INDEX_URL 环境变量设置。

--keyring-provider keyring-provider

尝试使用 keyring 进行索引 URL 的身份验证。

目前,仅支持 --keyring-provider subprocess,它将 uv 配置为使用 keyring CLI 来处理身份验证。

默认为 disabled

也可以通过 UV_KEYRING_PROVIDER 环境变量设置。

可选值

  • disabled:不使用密钥环进行凭据查找
  • subprocess:使用 keyring 命令进行凭据查找
--managed-python

要求使用 uv 管理的 Python 版本 [环境变量: UV_MANAGED_PYTHON=]

默认情况下,uv 优先使用其管理的 Python 版本。但是,如果未安装 uv 管理的 Python,它将使用系统 Python 版本。此选项将禁用系统 Python 版本的调用。

--native-tls

是否从平台的原生存储中加载 TLS 证书 [环境变量: UV_NATIVE_TLS=]

默认情况下,uv 从绑定的 webpki-roots crate 中加载证书。webpki-roots 是一组来自 Mozilla 的可靠信任根,在 uv 中包含它们可提高可移植性和性能(特别是在 macOS 上)。

然而,在某些情况下,您可能希望使用平台的原生证书存储,特别是当您依赖于系统证书存储中包含的公司信任根(例如强制代理)时。

--no-cache, --no-cache-dir, -n

避免从缓存中读取或写入缓存,而是在操作期间使用临时目录

也可以通过 UV_NO_CACHE 环境变量设置。

--no-config

避免发现配置文件(pyproject.tomluv.toml)。

通常,会在当前目录、父目录或用户配置目录中发现配置文件。

也可以通过 UV_NO_CONFIG 环境变量设置。

--no-index

忽略注册表索引(例如 PyPI),而是依赖直接 URL 依赖项和通过 --find-links 提供的依赖项

--no-managed-python

禁用对 uv 管理的 Python 版本的使用 [环境变量: UV_NO_MANAGED_PYTHON=]

相反,uv 将在系统上搜索合适的 Python 版本。

--no-progress

隐藏所有进度输出 [环境变量: UV_NO_PROGRESS=]

例如,微调器或进度条。

--no-python-downloads

禁用 Python 的自动下载。

--offline

禁用网络访问 [环境变量: UV_OFFLINE=]

禁用时,uv 将仅使用本地缓存的数据和本地可用的文件。

--outdated

列出过时的包。

每个包的最新版本将与已安装版本一起显示。最新的包将从输出中省略。

--prefix prefix

列出指定 --prefix 目录中的包

--project project

在给定目录中发现项目。

所有 pyproject.tomluv.toml.python-version 文件都将通过从项目根目录向上遍历目录树来发现,项目的虚拟环境 (.venv) 也是如此。

其他命令行参数(例如相对路径)将相对于当前工作目录进行解析。

参见 --directory 以完全更改工作目录。

当在 uv pip 接口中使用时,此设置无效。

也可以通过 UV_PROJECT 环境变量设置。

--python, -p python

应列出包的 Python 解释器。

默认情况下,uv 列出虚拟环境中的包,但如果未找到虚拟环境,则会显示系统 Python 环境中的包。

请参阅 uv python 以了解有关 Python 发现和支持的请求格式的详细信息。

也可以通过 UV_PYTHON 环境变量设置。

--quiet, -q

使用安静输出。

重复此选项,例如 -qq,将启用静默模式,其中 uv 不会将任何输出写入标准输出。

--strict

验证 Python 环境,以检测缺失依赖项和其他问题

--system

列出系统 Python 环境中的包。

禁用虚拟环境发现。

有关 Python 发现的详细信息,请参阅 uv python

也可以通过 UV_SYSTEM_PYTHON 环境变量进行设置。

--target target

列出指定 --target 目录中的包

--verbose, -v

使用详细输出。

您可以使用 RUST_LOG 环境变量配置细粒度日志记录。(https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html#directives

uv pip show

显示一个或多个已安装包的信息

用法

uv pip show [OPTIONS] [PACKAGE]...

参数

PACKAGE

要显示的包

Options (选项)

--allow-insecure-host, --trusted-host allow-insecure-host

允许与主机建立不安全连接。

可以多次提供。

期望接收主机名(例如 localhost)、主机-端口对(例如 localhost:8080)或 URL(例如 https://)。

警告:此列表中的主机不会根据系统的证书存储进行验证。仅在具有受信任来源的安全网络中使用 --allow-insecure-host,因为它会绕过 SSL 验证,可能会使您面临 MITM 攻击。

也可以通过 UV_INSECURE_HOST 环境变量设置。

--cache-dir cache-dir

缓存目录的路径。

默认在 macOS 和 Linux 上为 $XDG_CACHE_HOME/uv$HOME/.cache/uv,在 Windows 上为 %LOCALAPPDATA%\uv\cache

要查看缓存目录的位置,请运行 uv cache dir

也可以通过 UV_CACHE_DIR 环境变量设置。

--color color-choice

控制输出中颜色的使用。

默认情况下,uv 在写入终端时会自动检测对颜色的支持。

可选值

  • auto:仅在输出到支持颜色的终端或 TTY 时启用彩色输出
  • always:无论检测到的环境如何,都启用彩色输出
  • never:禁用彩色输出
--config-file config-file

用于配置的 uv.toml 文件路径。

虽然 uv 配置可以包含在 pyproject.toml 文件中,但在这种上下文下是不允许的。

也可以通过 UV_CONFIG_FILE 环境变量设置。

--directory directory

在运行命令之前切换到指定目录。

相对路径将以给定目录为基础进行解析。

参见 --project 仅更改项目根目录。

也可以通过 UV_WORKING_DIR 环境变量设置。

--files, -f

显示每个包的已安装文件完整列表

--help, -h

显示此命令的简明帮助信息

--managed-python

要求使用 uv 管理的 Python 版本 [环境变量: UV_MANAGED_PYTHON=]

默认情况下,uv 优先使用其管理的 Python 版本。但是,如果未安装 uv 管理的 Python,它将使用系统 Python 版本。此选项将禁用系统 Python 版本的调用。

--native-tls

是否从平台的原生存储中加载 TLS 证书 [环境变量: UV_NATIVE_TLS=]

默认情况下,uv 从绑定的 webpki-roots crate 中加载证书。webpki-roots 是一组来自 Mozilla 的可靠信任根,在 uv 中包含它们可提高可移植性和性能(特别是在 macOS 上)。

然而,在某些情况下,您可能希望使用平台的原生证书存储,特别是当您依赖于系统证书存储中包含的公司信任根(例如强制代理)时。

--no-cache, --no-cache-dir, -n

避免从缓存中读取或写入缓存,而是在操作期间使用临时目录

也可以通过 UV_NO_CACHE 环境变量设置。

--no-config

避免发现配置文件(pyproject.tomluv.toml)。

通常,会在当前目录、父目录或用户配置目录中发现配置文件。

也可以通过 UV_NO_CONFIG 环境变量设置。

--no-managed-python

禁用对 uv 管理的 Python 版本的使用 [环境变量: UV_NO_MANAGED_PYTHON=]

相反,uv 将在系统上搜索合适的 Python 版本。

--no-progress

隐藏所有进度输出 [环境变量: UV_NO_PROGRESS=]

例如,微调器或进度条。

--no-python-downloads

禁用 Python 的自动下载。

--offline

禁用网络访问 [环境变量: UV_OFFLINE=]

禁用时,uv 将仅使用本地缓存的数据和本地可用的文件。

--prefix prefix

显示指定 --prefix 目录中的包

--project project

在给定目录中发现项目。

所有 pyproject.tomluv.toml.python-version 文件都将通过从项目根目录向上遍历目录树来发现,项目的虚拟环境 (.venv) 也是如此。

其他命令行参数(例如相对路径)将相对于当前工作目录进行解析。

参见 --directory 以完全更改工作目录。

当在 uv pip 接口中使用时,此设置无效。

也可以通过 UV_PROJECT 环境变量设置。

--python, -p python

要在其中查找包的 Python 解释器。

默认情况下,uv 在虚拟环境中查找包,但如果未找到虚拟环境,则会在系统 Python 环境中查找包。

请参阅 uv python 以了解有关 Python 发现和支持的请求格式的详细信息。

也可以通过 UV_PYTHON 环境变量设置。

--quiet, -q

使用安静输出。

重复此选项,例如 -qq,将启用静默模式,其中 uv 不会将任何输出写入标准输出。

--strict

验证 Python 环境,以检测缺失依赖项和其他问题

--system

显示系统 Python 环境中的包。

禁用虚拟环境发现。

有关 Python 发现的详细信息,请参阅 uv python

也可以通过 UV_SYSTEM_PYTHON 环境变量进行设置。

--target target

显示指定 --target 目录中的包

--verbose, -v

使用详细输出。

您可以使用 RUST_LOG 环境变量配置细粒度日志记录。(https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html#directives

uv pip tree

显示环境的依赖树

用法

uv pip tree [OPTIONS]

Options (选项)

--allow-insecure-host, --trusted-host allow-insecure-host

允许与主机建立不安全连接。

可以多次提供。

期望接收主机名(例如 localhost)、主机-端口对(例如 localhost:8080)或 URL(例如 https://)。

警告:此列表中的主机不会根据系统的证书存储进行验证。仅在具有受信任来源的安全网络中使用 --allow-insecure-host,因为它会绕过 SSL 验证,可能会使您面临 MITM 攻击。

也可以通过 UV_INSECURE_HOST 环境变量设置。

--cache-dir cache-dir

缓存目录的路径。

默认在 macOS 和 Linux 上为 $XDG_CACHE_HOME/uv$HOME/.cache/uv,在 Windows 上为 %LOCALAPPDATA%\uv\cache

要查看缓存目录的位置,请运行 uv cache dir

也可以通过 UV_CACHE_DIR 环境变量设置。

--color color-choice

控制输出中颜色的使用。

默认情况下,uv 在写入终端时会自动检测对颜色的支持。

可选值

  • auto:仅在输出到支持颜色的终端或 TTY 时启用彩色输出
  • always:无论检测到的环境如何,都启用彩色输出
  • never:禁用彩色输出
--config-file config-file

用于配置的 uv.toml 文件路径。

虽然 uv 配置可以包含在 pyproject.toml 文件中,但在这种上下文下是不允许的。

也可以通过 UV_CONFIG_FILE 环境变量设置。

--default-index default-index

默认包索引的 URL(默认:https://pypi.ac.cn/simple)。

接受符合 PEP 503(简单存储库 API)的存储库,或以相同格式布局的本地目录。

此标志给出的索引优先级低于通过 --index 标志指定的所有其他索引。

也可以通过 UV_DEFAULT_INDEX 环境变量设置。

--depth, -d depth

依赖树的最大显示深度

[默认: 255]

--directory directory

在运行命令之前切换到指定目录。

相对路径将以给定目录为基础进行解析。

参见 --project 仅更改项目根目录。

也可以通过 UV_WORKING_DIR 环境变量设置。

--exclude-newer exclude-newer

将候选包限制为给定日期之前上传的包。

接受 RFC 3339 时间戳(例如 2006-12-02T02:07:43Z)、相同格式的本地日期(例如 2006-12-02,基于系统配置的时区解析)、“友好”持续时间(例如 24 hours1 week30 days)或 ISO 8601 持续时间(例如 PT24HP7DP30D)。

持续时间不尊重本地时区的语义,始终假定一天为 24 小时(例如忽略夏令时转换)并解析为固定的秒数。不允许使用月和年等日历单位。

也可以通过 UV_EXCLUDE_NEWER 环境变量设置。

--extra-index-url extra-index-url

(已弃用:请改用 --index)除 --index-url 之外要使用的额外包索引 URL。

接受符合 PEP 503(简单存储库 API)的存储库,或以相同格式布局的本地目录。

通过此标志提供的所有索引的优先级都高于 --index-url(默认为 PyPI)指定的索引。当提供多个 --extra-index-url 标志时,较早的值具有更高的优先级。

也可以通过 UV_EXTRA_INDEX_URL 环境变量设置。

除在注册表索引中找到的位置外,还要搜索候选分发包的位置。

如果是路径,则目标必须是包含顶层 wheel 文件 (.whl) 或源代码分发包(例如 .tar.gz.zip)的目录。

如果是 URL,页面必须包含符合上述格式的包文件链接的平面列表。

也可以通过 UV_FIND_LINKS 环境变量设置。

--help, -h

显示此命令的简明帮助信息

--index index

除默认索引外,解析依赖项时要使用的 URL。

接受符合 PEP 503(简单存储库 API)的存储库,或以相同格式布局的本地目录。

通过此标志提供的所有索引的优先级都高于 --default-index(默认为 PyPI)指定的索引。当提供多个 --index 标志时,较早的值具有更高的优先级。

不支持将索引名称用作值。相对路径必须使用 Unix 上的 ./../,或 Windows 上的 .\\..\\./../ 与索引名称区分开来。

也可以通过 UV_INDEX 环境变量设置。

--index-strategy index-strategy

在针对多个索引 URL 进行解析时要使用的策略。

默认情况下,uv 将在给定包可用的第一个索引处停止,并将解析限制为该第一个索引中存在的那些包 (first-index)。这可以防止“依赖混淆”攻击,攻击者可以在该攻击中以相同的名称将恶意包上传到备用索引。

也可以通过 UV_INDEX_STRATEGY 环境变量设置。

可选值

  • first-index:仅使用第一个返回给定包名称匹配结果的索引中的结果
  • unsafe-first-match:搜索跨所有索引的每个包名称,在转到下一个索引之前耗尽第一个索引中的版本
  • unsafe-best-match:搜索跨所有索引的每个包名称,优先选择找到的“最佳”版本。如果包版本存在于多个索引中,则仅查看第一个索引的条目
--index-url, -i index-url

(已弃用:请改用 --default-index)Python 包索引的 URL(默认:https://pypi.ac.cn/simple)。

接受符合 PEP 503(简单存储库 API)的存储库,或以相同格式布局的本地目录。

此标志给出的索引优先级低于通过 --extra-index-url 标志指定的所有其他索引。

也可以通过 UV_INDEX_URL 环境变量设置。

--invert, --reverse

显示给定包的反向依赖项。此标志将反转树并显示依赖于给定包的包。

--keyring-provider keyring-provider

尝试使用 keyring 进行索引 URL 的身份验证。

目前,仅支持 --keyring-provider subprocess,它将 uv 配置为使用 keyring CLI 来处理身份验证。

默认为 disabled

也可以通过 UV_KEYRING_PROVIDER 环境变量设置。

可选值

  • disabled:不使用密钥环进行凭据查找
  • subprocess:使用 keyring 命令进行凭据查找
--managed-python

要求使用 uv 管理的 Python 版本 [环境变量: UV_MANAGED_PYTHON=]

默认情况下,uv 优先使用其管理的 Python 版本。但是,如果未安装 uv 管理的 Python,它将使用系统 Python 版本。此选项将禁用系统 Python 版本的调用。

--native-tls

是否从平台的原生存储中加载 TLS 证书 [环境变量: UV_NATIVE_TLS=]

默认情况下,uv 从绑定的 webpki-roots crate 中加载证书。webpki-roots 是一组来自 Mozilla 的可靠信任根,在 uv 中包含它们可提高可移植性和性能(特别是在 macOS 上)。

然而,在某些情况下,您可能希望使用平台的原生证书存储,特别是当您依赖于系统证书存储中包含的公司信任根(例如强制代理)时。

--no-cache, --no-cache-dir, -n

避免从缓存中读取或写入缓存,而是在操作期间使用临时目录

也可以通过 UV_NO_CACHE 环境变量设置。

--no-config

避免发现配置文件(pyproject.tomluv.toml)。

通常,会在当前目录、父目录或用户配置目录中发现配置文件。

也可以通过 UV_NO_CONFIG 环境变量设置。

--no-dedupe

不去除重复的依赖项。通常,当一个包已经显示了其依赖项后,再次出现时将不会重复显示,并会包含一个 (*) 来表示已显示过。此标志会导致重复显示这些依赖项。

--no-index

忽略注册表索引(例如 PyPI),而是依赖直接 URL 依赖项和通过 --find-links 提供的依赖项

--no-managed-python

禁用对 uv 管理的 Python 版本的使用 [环境变量: UV_NO_MANAGED_PYTHON=]

相反,uv 将在系统上搜索合适的 Python 版本。

--no-progress

隐藏所有进度输出 [环境变量: UV_NO_PROGRESS=]

例如,微调器或进度条。

--no-python-downloads

禁用 Python 的自动下载。

--offline

禁用网络访问 [环境变量: UV_OFFLINE=]

禁用时,uv 将仅使用本地缓存的数据和本地可用的文件。

--outdated

显示树中每个包的最新可用版本

--package package

仅显示指定的包

--project project

在给定目录中发现项目。

所有 pyproject.tomluv.toml.python-version 文件都将通过从项目根目录向上遍历目录树来发现,项目的虚拟环境 (.venv) 也是如此。

其他命令行参数(例如相对路径)将相对于当前工作目录进行解析。

参见 --directory 以完全更改工作目录。

当在 uv pip 接口中使用时,此设置无效。

也可以通过 UV_PROJECT 环境变量设置。

--prune prune

从依赖树的显示中修剪给定的包

--python, -p python

应列出包的 Python 解释器。

默认情况下,uv 列出虚拟环境中的包,但如果未找到虚拟环境,则会显示系统 Python 环境中的包。

请参阅 uv python 以了解有关 Python 发现和支持的请求格式的详细信息。

也可以通过 UV_PYTHON 环境变量设置。

--quiet, -q

使用安静输出。

重复此选项,例如 -qq,将启用静默模式,其中 uv 不会将任何输出写入标准输出。

--show-sizes

显示树中包的压缩 wheel 大小

--show-version-specifiers

显示施加在每个包上的版本约束

--strict

验证 Python 环境,以检测缺失依赖项和其他问题

--system

列出系统 Python 环境中的包。

禁用虚拟环境发现。

有关 Python 发现的详细信息,请参阅 uv python

也可以通过 UV_SYSTEM_PYTHON 环境变量进行设置。

--verbose, -v

使用详细输出。

您可以使用 RUST_LOG 环境变量配置细粒度日志记录。(https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html#directives

uv pip check

验证已安装的包是否有兼容的依赖关系

用法

uv pip check [OPTIONS]

Options (选项)

--allow-insecure-host, --trusted-host allow-insecure-host

允许与主机建立不安全连接。

可以多次提供。

期望接收主机名(例如 localhost)、主机-端口对(例如 localhost:8080)或 URL(例如 https://)。

警告:此列表中的主机不会根据系统的证书存储进行验证。仅在具有受信任来源的安全网络中使用 --allow-insecure-host,因为它会绕过 SSL 验证,可能会使您面临 MITM 攻击。

也可以通过 UV_INSECURE_HOST 环境变量设置。

--cache-dir cache-dir

缓存目录的路径。

默认在 macOS 和 Linux 上为 $XDG_CACHE_HOME/uv$HOME/.cache/uv,在 Windows 上为 %LOCALAPPDATA%\uv\cache

要查看缓存目录的位置,请运行 uv cache dir

也可以通过 UV_CACHE_DIR 环境变量设置。

--color color-choice

控制输出中颜色的使用。

默认情况下,uv 在写入终端时会自动检测对颜色的支持。

可选值

  • auto:仅在输出到支持颜色的终端或 TTY 时启用彩色输出
  • always:无论检测到的环境如何,都启用彩色输出
  • never:禁用彩色输出
--config-file config-file

用于配置的 uv.toml 文件路径。

虽然 uv 配置可以包含在 pyproject.toml 文件中,但在这种上下文下是不允许的。

也可以通过 UV_CONFIG_FILE 环境变量设置。

--directory directory

在运行命令之前切换到指定目录。

相对路径将以给定目录为基础进行解析。

参见 --project 仅更改项目根目录。

也可以通过 UV_WORKING_DIR 环境变量设置。

--help, -h

显示此命令的简明帮助信息

--managed-python

要求使用 uv 管理的 Python 版本 [环境变量: UV_MANAGED_PYTHON=]

默认情况下,uv 优先使用其管理的 Python 版本。但是,如果未安装 uv 管理的 Python,它将使用系统 Python 版本。此选项将禁用系统 Python 版本的调用。

--native-tls

是否从平台的原生存储中加载 TLS 证书 [环境变量: UV_NATIVE_TLS=]

默认情况下,uv 从绑定的 webpki-roots crate 中加载证书。webpki-roots 是一组来自 Mozilla 的可靠信任根,在 uv 中包含它们可提高可移植性和性能(特别是在 macOS 上)。

然而,在某些情况下,您可能希望使用平台的原生证书存储,特别是当您依赖于系统证书存储中包含的公司信任根(例如强制代理)时。

--no-cache, --no-cache-dir, -n

避免从缓存中读取或写入缓存,而是在操作期间使用临时目录

也可以通过 UV_NO_CACHE 环境变量设置。

--no-config

避免发现配置文件(pyproject.tomluv.toml)。

通常,会在当前目录、父目录或用户配置目录中发现配置文件。

也可以通过 UV_NO_CONFIG 环境变量设置。

--no-managed-python

禁用对 uv 管理的 Python 版本的使用 [环境变量: UV_NO_MANAGED_PYTHON=]

相反,uv 将在系统上搜索合适的 Python 版本。

--no-progress

隐藏所有进度输出 [环境变量: UV_NO_PROGRESS=]

例如,微调器或进度条。

--no-python-downloads

禁用 Python 的自动下载。

--offline

禁用网络访问 [环境变量: UV_OFFLINE=]

禁用时,uv 将仅使用本地缓存的数据和本地可用的文件。

--project project

在给定目录中发现项目。

所有 pyproject.tomluv.toml.python-version 文件都将通过从项目根目录向上遍历目录树来发现,项目的虚拟环境 (.venv) 也是如此。

其他命令行参数(例如相对路径)将相对于当前工作目录进行解析。

参见 --directory 以完全更改工作目录。

当在 uv pip 接口中使用时,此设置无效。

也可以通过 UV_PROJECT 环境变量设置。

--python, -p python

应检查包的 Python 解释器。

默认情况下,uv 检查虚拟环境中的包,但如果未找到虚拟环境,则会在系统 Python 环境中检查包。

请参阅 uv python 以了解有关 Python 发现和支持的请求格式的详细信息。

也可以通过 UV_PYTHON 环境变量设置。

--python-platform python-platform

应检查包的平台。

默认情况下,已安装的包将根据当前解释器的平台进行检查。

表示为“目标三元组”,这是一个描述目标平台的字符串,包括 CPU、供应商和操作系统名称,例如 x86_64-unknown-linux-gnuaarch64-apple-darwin

当针对 macOS (Darwin) 时,默认最小版本为 13.0。使用 MACOSX_DEPLOYMENT_TARGET 指定不同的最小版本,例如 14.0

当针对 iOS 时,默认最小版本为 13.0。使用 IPHONEOS_DEPLOYMENT_TARGET 指定不同的最小版本,例如 14.0

当针对 Android 时,默认最小 Android API 级别为 24。使用 ANDROID_API_LEVEL 指定不同的最小版本,例如 26

可选值

  • windowsx86_64-pc-windows-msvc 的别名,Windows 的默认目标
  • linuxx86_64-unknown-linux-gnu 的别名,Linux 的默认目标
  • macosaarch64-apple-darwin 的别名,macOS 的默认目标
  • x86_64-pc-windows-msvc:64 位 x86 Windows 目标
  • aarch64-pc-windows-msvc:ARM64 Windows 目标
  • i686-pc-windows-msvc:32 位 x86 Windows 目标
  • x86_64-unknown-linux-gnu:x86 Linux 目标。等效于 x86_64-manylinux_2_28
  • aarch64-apple-darwin:ARM 架构 macOS 目标,如 Apple Silicon 设备上所见
  • x86_64-apple-darwin:x86 macOS 目标
  • aarch64-unknown-linux-gnu:ARM64 Linux 目标。等效于 aarch64-manylinux_2_28
  • aarch64-unknown-linux-musl:ARM64 Linux 目标
  • x86_64-unknown-linux-muslx86_64 Linux 目标
  • riscv64-unknown-linux:RISCV64 Linux 目标
  • x86_64-manylinux2014manylinux2014 平台的 x86_64 目标。等效于 x86_64-manylinux_2_17
  • x86_64-manylinux_2_17manylinux_2_17 平台的 x86_64 目标
  • x86_64-manylinux_2_28manylinux_2_28 平台的 x86_64 目标
  • x86_64-manylinux_2_31manylinux_2_31 平台的 x86_64 目标
  • x86_64-manylinux_2_32manylinux_2_32 平台的 x86_64 目标
  • x86_64-manylinux_2_33manylinux_2_33 平台的 x86_64 目标
  • x86_64-manylinux_2_34manylinux_2_34 平台的 x86_64 目标
  • x86_64-manylinux_2_35manylinux_2_35 平台的 x86_64 目标
  • x86_64-manylinux_2_36manylinux_2_36 平台的 x86_64 目标
  • x86_64-manylinux_2_37manylinux_2_37 平台的 x86_64 目标
  • x86_64-manylinux_2_38manylinux_2_38 平台的 x86_64 目标
  • x86_64-manylinux_2_39manylinux_2_39 平台的 x86_64 目标
  • x86_64-manylinux_2_40manylinux_2_40 平台的 x86_64 目标
  • aarch64-manylinux2014manylinux2014 平台的 ARM64 目标。等效于 aarch64-manylinux_2_17
  • aarch64-manylinux_2_17manylinux_2_17 平台的 ARM64 目标
  • aarch64-manylinux_2_28manylinux_2_28 平台的 ARM64 目标
  • aarch64-manylinux_2_31manylinux_2_31 平台的 ARM64 目标
  • aarch64-manylinux_2_32manylinux_2_32 平台的 ARM64 目标
  • aarch64-manylinux_2_33manylinux_2_33 平台的 ARM64 目标
  • aarch64-manylinux_2_34manylinux_2_34 平台的 ARM64 目标
  • aarch64-manylinux_2_35manylinux_2_35 平台的 ARM64 目标
  • aarch64-manylinux_2_36manylinux_2_36 平台的 ARM64 目标
  • aarch64-manylinux_2_37manylinux_2_37 平台的 ARM64 目标
  • aarch64-manylinux_2_38manylinux_2_38 平台的 ARM64 目标
  • aarch64-manylinux_2_39manylinux_2_39 平台的 ARM64 目标
  • aarch64-manylinux_2_40manylinux_2_40 平台的 ARM64 目标
  • aarch64-linux-android:ARM64 Android 目标
  • x86_64-linux-androidx86_64 Android 目标
  • wasm32-pyodide2024:使用 Pyodide 2024 平台的 wasm32 目标。旨在与 Python 3.12 一起使用
  • arm64-apple-ios:iOS 设备的 ARM64 目标
  • arm64-apple-ios-simulator:iOS 模拟器的 ARM64 目标
  • x86_64-apple-ios-simulator:iOS 模拟器的 x86_64 目标
--python-version python-version

应检查包的 Python 版本。

默认情况下,已安装的包将根据当前解释器的版本进行检查。

--quiet, -q

使用安静输出。

重复此选项,例如 -qq,将启用静默模式,其中 uv 不会将任何输出写入标准输出。

--system

检查系统 Python 环境中的包。

禁用虚拟环境发现。

有关 Python 发现的详细信息,请参阅 uv python

也可以通过 UV_SYSTEM_PYTHON 环境变量进行设置。

--verbose, -v

使用详细输出。

您可以使用 RUST_LOG 环境变量配置细粒度日志记录。(https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html#directives

uv venv

创建虚拟环境。

默认情况下,在工作目录中创建一个名为 .venv 的虚拟环境。可以按位置提供备用路径。

如果处于项目中,可以使用 UV_PROJECT_ENVIRONMENT 环境变量更改默认环境名称;这仅适用于在项目根目录中运行时。

如果目标路径中存在虚拟环境,它将被删除,并创建一个新的空虚拟环境。

使用 uv 时,不需要激活虚拟环境。uv 将在工作目录或任何父目录中查找虚拟环境(名为 .venv)。

用法

uv venv [OPTIONS] [PATH]

参数

PATH

要创建的虚拟环境的路径。

默认为工作目录中的 .venv

相对路径相对于工作目录解析。

Options (选项)

--allow-existing

保留目标路径下的任何现有文件或目录。

默认情况下,如果给定路径不为空,uv venv 将报错退出。--allow-existing 选项将写入给定路径,无论其内容如何,且不会事先清除它。

警告:如果现有的虚拟环境和新创建的虚拟环境链接到不同的 Python 解释器,此选项可能导致意外行为。

--allow-insecure-host, --trusted-host allow-insecure-host

允许与主机建立不安全连接。

可以多次提供。

期望接收主机名(例如 localhost)、主机-端口对(例如 localhost:8080)或 URL(例如 https://)。

警告:此列表中的主机不会根据系统的证书存储进行验证。仅在具有受信任来源的安全网络中使用 --allow-insecure-host,因为它会绕过 SSL 验证,可能会使您面临 MITM 攻击。

也可以通过 UV_INSECURE_HOST 环境变量设置。

--cache-dir cache-dir

缓存目录的路径。

默认在 macOS 和 Linux 上为 $XDG_CACHE_HOME/uv$HOME/.cache/uv,在 Windows 上为 %LOCALAPPDATA%\uv\cache

要查看缓存目录的位置,请运行 uv cache dir

也可以通过 UV_CACHE_DIR 环境变量设置。

--clear, -c

删除目标路径下的任何现有文件或目录 [env: UV_VENV_CLEAR=]

默认情况下,如果给定路径不为空,uv venv 将报错退出。--clear 选项将在创建新虚拟环境之前清除不为空的路径。

--color color-choice

控制输出中颜色的使用。

默认情况下,uv 在写入终端时会自动检测对颜色的支持。

可选值

  • auto:仅在输出到支持颜色的终端或 TTY 时启用彩色输出
  • always:无论检测到的环境如何,都启用彩色输出
  • never:禁用彩色输出
--config-file config-file

用于配置的 uv.toml 文件路径。

虽然 uv 配置可以包含在 pyproject.toml 文件中,但在这种上下文下是不允许的。

也可以通过 UV_CONFIG_FILE 环境变量设置。

--default-index default-index

默认包索引的 URL(默认:https://pypi.ac.cn/simple)。

接受符合 PEP 503(简单存储库 API)的存储库,或以相同格式布局的本地目录。

此标志给出的索引优先级低于通过 --index 标志指定的所有其他索引。

也可以通过 UV_DEFAULT_INDEX 环境变量设置。

--directory directory

在运行命令之前切换到指定目录。

相对路径将以给定目录为基础进行解析。

参见 --project 仅更改项目根目录。

也可以通过 UV_WORKING_DIR 环境变量设置。

--exclude-newer exclude-newer

将候选包限制为给定日期之前上传的包。

接受 RFC 3339 时间戳(例如 2006-12-02T02:07:43Z)、相同格式的本地日期(例如 2006-12-02,基于系统配置的时区解析)、“友好”持续时间(例如 24 hours1 week30 days)或 ISO 8601 持续时间(例如 PT24HP7DP30D)。

持续时间不尊重本地时区的语义,始终假定一天为 24 小时(例如忽略夏令时转换)并解析为固定的秒数。不允许使用月和年等日历单位。

也可以通过 UV_EXCLUDE_NEWER 环境变量设置。

--exclude-newer-package exclude-newer-package

将特定包的候选包限制为在给定日期之前上传的那些包。

接受 PACKAGE=DATE 格式的包日期对,其中 DATE 是一个 RFC 3339 时间戳(例如 2006-12-02T02:07:43Z)、基于您系统配置的时区解析的相同格式的本地日期(例如 2006-12-02)、“友好”持续时间(例如 24 hours1 week30 days)或 ISO 8601 持续时间(例如 PT24HP7DP30D)。

持续时间不尊重本地时区的语义,始终假定一天为 24 小时(例如忽略夏令时转换)并解析为固定的秒数。不允许使用月和年等日历单位。

可以为不同的包多次提供。

--extra-index-url extra-index-url

(已弃用:请改用 --index)除 --index-url 之外要使用的额外包索引 URL。

接受符合 PEP 503(简单存储库 API)的存储库,或以相同格式布局的本地目录。

通过此标志提供的所有索引的优先级都高于 --index-url(默认为 PyPI)指定的索引。当提供多个 --extra-index-url 标志时,较早的值具有更高的优先级。

也可以通过 UV_EXTRA_INDEX_URL 环境变量设置。

除在注册表索引中找到的位置外,还要搜索候选分发包的位置。

如果是路径,则目标必须是包含顶层 wheel 文件 (.whl) 或源代码分发包(例如 .tar.gz.zip)的目录。

如果是 URL,页面必须包含符合上述格式的包文件链接的平面列表。

也可以通过 UV_FIND_LINKS 环境变量设置。

--help, -h

显示此命令的简明帮助信息

--index index

除默认索引外,解析依赖项时要使用的 URL。

接受符合 PEP 503(简单存储库 API)的存储库,或以相同格式布局的本地目录。

通过此标志提供的所有索引的优先级都高于 --default-index(默认为 PyPI)指定的索引。当提供多个 --index 标志时,较早的值具有更高的优先级。

不支持将索引名称用作值。相对路径必须使用 Unix 上的 ./../,或 Windows 上的 .\\..\\./../ 与索引名称区分开来。

也可以通过 UV_INDEX 环境变量设置。

--index-strategy index-strategy

在针对多个索引 URL 进行解析时要使用的策略。

默认情况下,uv 将在给定包可用的第一个索引处停止,并将解析限制为该第一个索引中存在的那些包 (first-index)。这可以防止“依赖混淆”攻击,攻击者可以在该攻击中以相同的名称将恶意包上传到备用索引。

也可以通过 UV_INDEX_STRATEGY 环境变量设置。

可选值

  • first-index:仅使用第一个返回给定包名称匹配结果的索引中的结果
  • unsafe-first-match:搜索跨所有索引的每个包名称,在转到下一个索引之前耗尽第一个索引中的版本
  • unsafe-best-match:搜索跨所有索引的每个包名称,优先选择找到的“最佳”版本。如果包版本存在于多个索引中,则仅查看第一个索引的条目
--index-url, -i index-url

(已弃用:请改用 --default-index)Python 包索引的 URL(默认:https://pypi.ac.cn/simple)。

接受符合 PEP 503(简单存储库 API)的存储库,或以相同格式布局的本地目录。

此标志给出的索引优先级低于通过 --extra-index-url 标志指定的所有其他索引。

也可以通过 UV_INDEX_URL 环境变量设置。

--keyring-provider keyring-provider

尝试使用 keyring 进行索引 URL 的身份验证。

目前,仅支持 --keyring-provider subprocess,它将 uv 配置为使用 keyring CLI 来处理身份验证。

默认为 disabled

也可以通过 UV_KEYRING_PROVIDER 环境变量设置。

可选值

  • disabled:不使用密钥环进行凭据查找
  • subprocess:使用 keyring 命令进行凭据查找

从全局缓存安装包时要使用的方法。

此选项仅用于安装种子包。

默认在 macOS 和 Linux 上为 clone(也称为写时复制),在 Windows 上为 hardlink

警告:不建议使用符号链接链接模式,因为它们会在缓存和目标环境之间创建紧密的耦合。例如,清除缓存 (uv cache clean) 将通过移除底层源文件来破坏所有已安装的包。请谨慎使用符号链接。

也可以通过 UV_LINK_MODE 环境变量设置。

可选值

  • clone:将包从源克隆(即写时复制)到目标
  • copy:将包从源复制到目标
  • hardlink:将包从源硬链接到目标
  • symlink:将包从源符号链接到目标
--managed-python

要求使用 uv 管理的 Python 版本 [环境变量: UV_MANAGED_PYTHON=]

默认情况下,uv 优先使用其管理的 Python 版本。但是,如果未安装 uv 管理的 Python,它将使用系统 Python 版本。此选项将禁用系统 Python 版本的调用。

--native-tls

是否从平台的原生存储中加载 TLS 证书 [环境变量: UV_NATIVE_TLS=]

默认情况下,uv 从绑定的 webpki-roots crate 中加载证书。webpki-roots 是一组来自 Mozilla 的可靠信任根,在 uv 中包含它们可提高可移植性和性能(特别是在 macOS 上)。

然而,在某些情况下,您可能希望使用平台的原生证书存储,特别是当您依赖于系统证书存储中包含的公司信任根(例如强制代理)时。

--no-cache, --no-cache-dir, -n

避免从缓存中读取或写入缓存,而是在操作期间使用临时目录

也可以通过 UV_NO_CACHE 环境变量设置。

--no-config

避免发现配置文件(pyproject.tomluv.toml)。

通常,会在当前目录、父目录或用户配置目录中发现配置文件。

也可以通过 UV_NO_CONFIG 环境变量设置。

--no-index

忽略注册表索引(例如 PyPI),而是依赖直接 URL 依赖项和通过 --find-links 提供的依赖项

--no-managed-python

禁用对 uv 管理的 Python 版本的使用 [环境变量: UV_NO_MANAGED_PYTHON=]

相反,uv 将在系统上搜索合适的 Python 版本。

--no-progress

隐藏所有进度输出 [环境变量: UV_NO_PROGRESS=]

例如,微调器或进度条。

--no-project, --no-workspace

避免发现项目或工作区。

默认情况下,uv 在当前目录或任何父目录中搜索项目,以确定虚拟环境的默认路径并检查 Python 版本约束(如果有)。

--no-python-downloads

禁用 Python 的自动下载。

--offline

禁用网络访问 [环境变量: UV_OFFLINE=]

禁用时,uv 将仅使用本地缓存的数据和本地可用的文件。

--project project

在给定目录中发现项目。

所有 pyproject.tomluv.toml.python-version 文件都将通过从项目根目录向上遍历目录树来发现,项目的虚拟环境 (.venv) 也是如此。

其他命令行参数(例如相对路径)将相对于当前工作目录进行解析。

参见 --directory 以完全更改工作目录。

当在 uv pip 接口中使用时,此设置无效。

也可以通过 UV_PROJECT 环境变量设置。

--prompt prompt

为虚拟环境提供替代提示前缀。

默认情况下,提示取决于是否提供了 uv venv 的路径。如果提供(例如 uv venv project),提示设置为目录名称。如果不提供(uv venv),提示设置为当前目录的名称。

如果提供了 ".",无论是否为 uv venv 提供了路径,都将使用当前目录名称。

--python, -p python

用于虚拟环境的 Python 解释器。

在创建虚拟环境期间,uv 不会查找虚拟环境中的 Python 解释器。

请参阅 uv python 以了解有关 Python 发现和支持的请求格式的详细信息。

也可以通过 UV_PYTHON 环境变量设置。

--quiet, -q

使用安静输出。

重复此选项,例如 -qq,将启用静默模式,其中 uv 不会将任何输出写入标准输出。

--refresh

刷新所有缓存数据

--refresh-package refresh-package

刷新特定包的缓存数据

--relocatable

使虚拟环境可重定位 [env: UV_VENV_RELOCATABLE=]

可重定位的虚拟环境可以在不使其关联的入口点和激活脚本失效的情况下移动和重新分发。

请注意,这只能保证标准 console_scriptsgui_scripts。如果其他脚本带有通用的 #!python[w] shebang,它们可能会被调整,而二进制文件保持原样。

由于使环境可重定位(通过写入相对路径而不是绝对路径),入口点和脚本本身将*不可*重定位。换句话说,将这些入口点和脚本复制到环境之外的位置将无法工作,因为它们引用了相对于环境本身的路径。

--seed

将种子包(pipsetuptoolswheel 中的一个或多个)安装到虚拟环境中 [env: UV_VENV_SEED=]

请注意,setuptoolswheel 不包含在 Python 3.12+ 环境中。

--system-site-packages

授予虚拟环境对系统 site-packages 目录的访问权限。

pip 不同,当使用 --system-site-packages 创建虚拟环境时,uv 在运行诸如 uv pip listuv pip install 等命令时*不会*考虑系统 site-packages。--system-site-packages 标志将在运行时为虚拟环境提供对系统 site-packages 目录的访问权限,但不会影响 uv 命令的行为。

--verbose, -v

使用详细输出。

您可以使用 RUST_LOG 环境变量配置细粒度日志记录。(https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html#directives

uv build

将 Python 包构建为源代码分发包和 wheels。

uv build 接受目录或源代码分发包的路径,默认为当前工作目录。

默认情况下,如果传入目录,uv build 将从源目录构建源代码分发包("sdist"),并从源代码分发包构建二进制分发包("wheel")。

uv build --sdist 可用于仅构建源代码分发包,uv build --wheel 可用于仅构建二进制分发包,而 uv build --sdist --wheel 可用于从源代码构建这两个分发包。

如果传入源代码分发包,uv build --wheel 将从源代码分发包构建 wheel。

用法

uv build [OPTIONS] [SRC]

参数

SRC

应从中构建分发包的目录,或要构建为 wheel 的源代码分发包归档。

默认为当前工作目录。

Options (选项)

--all-packages, --all

构建工作区中的所有包。

将从提供的源目录中发现工作区,如果未提供源目录,则使用当前目录。

如果工作空间成员不存在,uv 将报错退出。

--allow-insecure-host, --trusted-host allow-insecure-host

允许与主机建立不安全连接。

可以多次提供。

期望接收主机名(例如 localhost)、主机-端口对(例如 localhost:8080)或 URL(例如 https://)。

警告:此列表中的主机不会根据系统的证书存储进行验证。仅在具有受信任来源的安全网络中使用 --allow-insecure-host,因为它会绕过 SSL 验证,可能会使您面临 MITM 攻击。

也可以通过 UV_INSECURE_HOST 环境变量设置。

--build-constraints, --build-constraint, -b build-constraints

构建分发包时使用给定要求文件约束构建依赖项。

约束文件是 requirements.txt 类文件,仅控制已安装的构建依赖项的*版本*。但是,在约束文件中包含包将*不会*触发该包的自动包含。

也可以通过 UV_BUILD_CONSTRAINT 环境变量设置。

--cache-dir cache-dir

缓存目录的路径。

默认在 macOS 和 Linux 上为 $XDG_CACHE_HOME/uv$HOME/.cache/uv,在 Windows 上为 %LOCALAPPDATA%\uv\cache

要查看缓存目录的位置,请运行 uv cache dir

也可以通过 UV_CACHE_DIR 环境变量设置。

--clear

在构建之前清除输出目录,移除陈旧的工件

--color color-choice

控制输出中颜色的使用。

默认情况下,uv 在写入终端时会自动检测对颜色的支持。

可选值

  • auto:仅在输出到支持颜色的终端或 TTY 时启用彩色输出
  • always:无论检测到的环境如何,都启用彩色输出
  • never:禁用彩色输出
--config-file config-file

用于配置的 uv.toml 文件路径。

虽然 uv 配置可以包含在 pyproject.toml 文件中,但在这种上下文下是不允许的。

也可以通过 UV_CONFIG_FILE 环境变量设置。

--config-setting, --config-settings, -C config-setting

传递给 PEP 517 构建后端的设置,指定为 KEY=VALUE

--config-settings-package, --config-settings-package config-settings-package

传递给特定包的 PEP 517 构建后端的设置,指定为 PACKAGE:KEY=VALUE

--default-index default-index

默认包索引的 URL(默认:https://pypi.ac.cn/simple)。

接受符合 PEP 503(简单存储库 API)的存储库,或以相同格式布局的本地目录。

此标志给出的索引优先级低于通过 --index 标志指定的所有其他索引。

也可以通过 UV_DEFAULT_INDEX 环境变量设置。

--directory directory

在运行命令之前切换到指定目录。

相对路径将以给定目录为基础进行解析。

参见 --project 仅更改项目根目录。

也可以通过 UV_WORKING_DIR 环境变量设置。

--exclude-newer exclude-newer

将候选包限制为给定日期之前上传的包。

接受 RFC 3339 时间戳(例如 2006-12-02T02:07:43Z)、相同格式的本地日期(例如 2006-12-02,基于系统配置的时区解析)、“友好”持续时间(例如 24 hours1 week30 days)或 ISO 8601 持续时间(例如 PT24HP7DP30D)。

持续时间不尊重本地时区的语义,始终假定一天为 24 小时(例如忽略夏令时转换)并解析为固定的秒数。不允许使用月和年等日历单位。

也可以通过 UV_EXCLUDE_NEWER 环境变量设置。

--exclude-newer-package exclude-newer-package

将特定包的候选包限制为给定日期之前上传的包。

接受 PACKAGE=DATE 格式的包-日期对,其中 DATE 是 RFC 3339 时间戳(例如 2006-12-02T02:07:43Z)、相同格式的本地日期(例如 2006-12-02,基于系统配置的时区解析)、“友好”持续时间(例如 24 hours1 week30 days)或 ISO 8601 持续时间(例如 PT24HP7DP30D)。

持续时间不尊重本地时区的语义,始终假定一天为 24 小时(例如忽略夏令时转换)并解析为固定的秒数。不允许使用月和年等日历单位。

可以为不同的包多次提供。

--extra-index-url extra-index-url

(已弃用:请改用 --index)除 --index-url 之外要使用的额外包索引 URL。

接受符合 PEP 503(简单存储库 API)的存储库,或以相同格式布局的本地目录。

通过此标志提供的所有索引的优先级都高于 --index-url(默认为 PyPI)指定的索引。当提供多个 --extra-index-url 标志时,较早的值具有更高的优先级。

也可以通过 UV_EXTRA_INDEX_URL 环境变量设置。

除在注册表索引中找到的位置外,还要搜索候选分发包的位置。

如果是路径,则目标必须是包含顶层 wheel 文件 (.whl) 或源代码分发包(例如 .tar.gz.zip)的目录。

如果是 URL,页面必须包含符合上述格式的包文件链接的平面列表。

也可以通过 UV_FIND_LINKS 环境变量设置。

--force-pep517

始终通过 PEP 517 构建,不要对 uv 构建后端使用快速路径。

默认情况下,uv 不会为使用 uv 构建后端的包创建 PEP 517 构建环境,而是使用直接调用构建后端的快速路径。此选项强制始终使用 PEP 517。

--fork-strategy fork-strategy

在跨 Python 版本和平台选择给定包的多个版本时要使用的策略。

默认情况下,uv 将优化为为每个支持的 Python 版本 (requires-python) 选择每个包的最新版本,同时最小化跨平台的选定版本数量。

fewest 下,uv 将最小化每个包的选定版本数量,优先选择与更广泛支持的 Python 版本或平台兼容的旧版本。

也可以通过 UV_FORK_STRATEGY 环境变量设置。

可选值

  • fewest:优化为为每个包选择最少数量的版本。如果旧版本与更广泛的支持 Python 版本或平台兼容,则可能优先选择旧版本
  • requires-python:优化为为每个支持的 Python 版本选择每个包的最新支持版本
--help, -h

显示此命令的简明帮助信息

--index index

除默认索引外,解析依赖项时要使用的 URL。

接受符合 PEP 503(简单存储库 API)的存储库,或以相同格式布局的本地目录。

通过此标志提供的所有索引的优先级都高于 --default-index(默认为 PyPI)指定的索引。当提供多个 --index 标志时,较早的值具有更高的优先级。

不支持将索引名称用作值。相对路径必须使用 Unix 上的 ./../,或 Windows 上的 .\\..\\./../ 与索引名称区分开来。

也可以通过 UV_INDEX 环境变量设置。

--index-strategy index-strategy

在针对多个索引 URL 进行解析时要使用的策略。

默认情况下,uv 将在给定包可用的第一个索引处停止,并将解析限制为该第一个索引中存在的那些包 (first-index)。这可以防止“依赖混淆”攻击,攻击者可以在该攻击中以相同的名称将恶意包上传到备用索引。

也可以通过 UV_INDEX_STRATEGY 环境变量设置。

可选值

  • first-index:仅使用第一个返回给定包名称匹配结果的索引中的结果
  • unsafe-first-match:搜索跨所有索引的每个包名称,在转到下一个索引之前耗尽第一个索引中的版本
  • unsafe-best-match:搜索跨所有索引的每个包名称,优先选择找到的“最佳”版本。如果包版本存在于多个索引中,则仅查看第一个索引的条目
--index-url, -i index-url

(已弃用:请改用 --default-index)Python 包索引的 URL(默认:https://pypi.ac.cn/simple)。

接受符合 PEP 503(简单存储库 API)的存储库,或以相同格式布局的本地目录。

此标志给出的索引优先级低于通过 --extra-index-url 标志指定的所有其他索引。

也可以通过 UV_INDEX_URL 环境变量设置。

--keyring-provider keyring-provider

尝试使用 keyring 进行索引 URL 的身份验证。

目前,仅支持 --keyring-provider subprocess,它将 uv 配置为使用 keyring CLI 来处理身份验证。

默认为 disabled

也可以通过 UV_KEYRING_PROVIDER 环境变量设置。

可选值

  • disabled:不使用密钥环进行凭据查找
  • subprocess:使用 keyring 命令进行凭据查找

从全局缓存安装包时要使用的方法。

此选项仅在构建源码包时使用。

默认在 macOS 和 Linux 上为 clone(也称为写时复制),在 Windows 上为 hardlink

警告:不建议使用符号链接链接模式,因为它们会在缓存和目标环境之间创建紧密的耦合。例如,清除缓存 (uv cache clean) 将通过移除底层源文件来破坏所有已安装的包。请谨慎使用符号链接。

也可以通过 UV_LINK_MODE 环境变量设置。

可选值

  • clone:将包从源克隆(即写时复制)到目标
  • copy:将包从源复制到目标
  • hardlink:将包从源硬链接到目标
  • symlink:将包从源符号链接到目标
--managed-python

要求使用 uv 管理的 Python 版本 [环境变量: UV_MANAGED_PYTHON=]

默认情况下,uv 优先使用其管理的 Python 版本。但是,如果未安装 uv 管理的 Python,它将使用系统 Python 版本。此选项将禁用系统 Python 版本的调用。

--native-tls

是否从平台的原生存储中加载 TLS 证书 [环境变量: UV_NATIVE_TLS=]

默认情况下,uv 从绑定的 webpki-roots crate 中加载证书。webpki-roots 是一组来自 Mozilla 的可靠信任根,在 uv 中包含它们可提高可移植性和性能(特别是在 macOS 上)。

然而,在某些情况下,您可能希望使用平台的原生证书存储,特别是当您依赖于系统证书存储中包含的公司信任根(例如强制代理)时。

--no-binary

不安装预构建的 wheel。

给定的包将从源代码构建和安装。如果可用,解析器仍将使用预构建的 wheel 来提取包元数据。

也可以通过 UV_NO_BINARY 环境变量设置。

--no-binary-package no-binary-package

不为特定包安装预构建的 wheel

也可以通过 UV_NO_BINARY_PACKAGE 环境变量设置。

--no-build

不构建源代码分发包。

启用后,解析将不会运行任意 Python 代码。已构建的源代码分发包的缓存 wheel 将被重用,但需要构建分发包的操作将报错退出。

也可以通过 UV_NO_BUILD 环境变量设置。

--no-build-isolation

构建源代码分发包时禁用隔离。

假定 PEP 518 指定的构建依赖项已安装。

也可以通过 UV_NO_BUILD_ISOLATION 环境变量设置。

--no-build-isolation-package no-build-isolation-package

为特定包构建源代码分发包时禁用隔离。

假定包的 PEP 518 指定的构建依赖项已安装。

--no-build-logs

隐藏构建后端的日志

--no-build-package no-build-package

不为特定包构建源代码分发包

也可以通过 UV_NO_BUILD_PACKAGE 环境变量设置。

--no-cache, --no-cache-dir, -n

避免从缓存中读取或写入缓存,而是在操作期间使用临时目录

也可以通过 UV_NO_CACHE 环境变量设置。

--no-config

避免发现配置文件(pyproject.tomluv.toml)。

通常,会在当前目录、父目录或用户配置目录中发现配置文件。

也可以通过 UV_NO_CONFIG 环境变量设置。

--no-create-gitignore

不要在输出目录中创建 .gitignore 文件。

默认情况下,uv 会在输出目录中创建一个 .gitignore 文件,以从版本控制中排除构建工件。使用此标志时,将省略该文件。

--no-index

忽略注册表索引(例如 PyPI),而是依赖直接 URL 依赖项和通过 --find-links 提供的依赖项

--no-managed-python

禁用对 uv 管理的 Python 版本的使用 [环境变量: UV_NO_MANAGED_PYTHON=]

相反,uv 将在系统上搜索合适的 Python 版本。

--no-progress

隐藏所有进度输出 [环境变量: UV_NO_PROGRESS=]

例如,微调器或进度条。

--no-python-downloads

禁用 Python 的自动下载。

--no-sources

解析依赖项时忽略 tool.uv.sources 表。用于根据标准兼容、可发布的包元数据进行锁定,而不是使用任何工作空间、Git、URL 或本地路径源

也可以通过 UV_NO_SOURCES 环境变量设置。

--no-sources-package no-sources-package

不要为指定包使用 tool.uv.sources 表中的源

也可以通过 UV_NO_SOURCES_PACKAGE 环境变量设置。

--no-verify-hashes

禁用对要求文件中哈希值的验证。

默认情况下,uv 会验证要求文件中任何可用的哈希值,但不会要求所有要求都有关联的哈希值。要强制执行哈希验证,请使用 --require-hashes

也可以通过 UV_NO_VERIFY_HASHES 环境变量进行设置。

--offline

禁用网络访问 [环境变量: UV_OFFLINE=]

禁用时,uv 将仅使用本地缓存的数据和本地可用的文件。

--out-dir, -o out-dir

应将分发包写入的输出目录。

默认为源目录内的 dist 子目录,或包含源代码分发包归档的目录。

--package package

构建工作区中的特定包。

将从提供的源目录中发现工作区,如果未提供源目录,则使用当前目录。

如果工作空间成员不存在,uv 将报错退出。

--prerelease prerelease

考虑预发布版本时要使用的策略。

默认情况下,uv 将接受 发布预发布版本的包,以及在声明的需求说明符中包含显式预发布标记的一方需求 (if-necessary-or-explicit)。

也可以通过 UV_PRERELEASE 环境变量设置。

可选值

  • disallow:不允许所有预发布版本
  • allow:允许所有预发布版本
  • if-necessary:如果包的所有版本都是预发布版本,则允许预发布版本
  • explicit:允许在版本需求中具有显式预发布标记的一方包的预发布版本
  • if-necessary-or-explicit:如果包的所有版本都是预发布版本,或者如果包在版本需求中具有显式预发布标记,则允许预发布版本
--project project

在给定目录中发现项目。

所有 pyproject.tomluv.toml.python-version 文件都将通过从项目根目录向上遍历目录树来发现,项目的虚拟环境 (.venv) 也是如此。

其他命令行参数(例如相对路径)将相对于当前工作目录进行解析。

参见 --directory 以完全更改工作目录。

当在 uv pip 接口中使用时,此设置无效。

也可以通过 UV_PROJECT 环境变量设置。

--python, -p python

用于构建环境的 Python 解释器。

默认情况下,构建在隔离的虚拟环境中执行。发现的解释器将用于创建这些环境,并根据平台进行符号链接或复制。

请参阅 uv python 以查看支持的请求格式。

也可以通过 UV_PYTHON 环境变量设置。

--quiet, -q

使用安静输出。

重复此选项,例如 -qq,将启用静默模式,其中 uv 不会将任何输出写入标准输出。

--refresh

刷新所有缓存数据

--refresh-package refresh-package

刷新特定包的缓存数据

--require-hashes

要求每个要求都有匹配的哈希值。

默认情况下,uv 会验证要求文件中任何可用的哈希值,但不会要求所有要求都有关联的哈希值。

当启用 --require-hashes 时,*所有*要求必须包含哈希值或哈希集,且*所有*要求必须固定到精确版本(例如 ==1.0.0),或通过直接 URL 指定。

哈希检查模式引入了许多额外的限制

  • 不支持 Git 依赖。 - 不支持可编辑安装。 - 不支持本地依赖,除非它们指向特定的 wheel (.whl) 或源代码归档 (.zip, .tar.gz),而不是目录。

也可以通过 UV_REQUIRE_HASHES 环境变量进行设置。

--resolution resolution

在为给定包需求选择不同的兼容版本时要使用的策略。

默认情况下,uv 将使用每个包的最新兼容版本 (highest)。

也可以通过 UV_RESOLUTION 环境变量设置。

可选值

  • highest:解析每个包的最高兼容版本
  • lowest:解析每个包的最低兼容版本
  • lowest-direct:解析任何直接依赖项的最低兼容版本,以及任何传递依赖项的最高兼容版本
--sdist

从给定目录构建源代码分发包("sdist")

--upgrade, -U

允许包升级,忽略任何现有输出文件中的固定版本。暗示 --refresh

--upgrade-package, -P upgrade-package

允许升级特定包,忽略任何现有输出文件中的固定版本。暗示 --refresh-package

--verbose, -v

使用详细输出。

您可以使用 RUST_LOG 环境变量配置细粒度日志记录。(https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html#directives

--wheel

从给定目录构建二进制分发包("wheel")

uv publish

将分发包上传到索引

用法

uv publish [OPTIONS] [FILES]...

参数

FILES

要上传的文件的路径。接受 glob 表达式。

默认为 dist 目录。仅选择 wheels 和源代码分发包及其证明,同时忽略其他文件。

Options (选项)

--allow-insecure-host, --trusted-host allow-insecure-host

允许与主机建立不安全连接。

可以多次提供。

期望接收主机名(例如 localhost)、主机-端口对(例如 localhost:8080)或 URL(例如 https://)。

警告:此列表中的主机不会根据系统的证书存储进行验证。仅在具有受信任来源的安全网络中使用 --allow-insecure-host,因为它会绕过 SSL 验证,可能会使您面临 MITM 攻击。

也可以通过 UV_INSECURE_HOST 环境变量设置。

--cache-dir cache-dir

缓存目录的路径。

默认在 macOS 和 Linux 上为 $XDG_CACHE_HOME/uv$HOME/.cache/uv,在 Windows 上为 %LOCALAPPDATA%\uv\cache

要查看缓存目录的位置,请运行 uv cache dir

也可以通过 UV_CACHE_DIR 环境变量设置。

--check-url check-url

检查索引 URL 以获取现有文件,从而跳过重复上传。

此选项允许在仅部分文件上传后失败的重试发布,并处理由于同一文件的并行上传导致的错误。

上传前,会检查索引。如果索引中已存在完全相同的文件,则不会上传该文件。如果上传过程中发生错误,将再次检查索引,以处理同一文件并行上传两次的情况。

确切的行为将根据索引而异。当上传到 PyPI 时,即使没有 --check-url,上传相同文件也会成功,而大多数其他索引会报错。当上传到 pyx 时,索引 URL 可以从发布 URL 自动推断。

索引必须提供受支持的哈希值之一(SHA-256、SHA-384 或 SHA-512)。

也可以通过 UV_PUBLISH_CHECK_URL 环境变量进行设置。

--color color-choice

控制输出中颜色的使用。

默认情况下,uv 在写入终端时会自动检测对颜色的支持。

可选值

  • auto:仅在输出到支持颜色的终端或 TTY 时启用彩色输出
  • always:无论检测到的环境如何,都启用彩色输出
  • never:禁用彩色输出
--config-file config-file

用于配置的 uv.toml 文件路径。

虽然 uv 配置可以包含在 pyproject.toml 文件中,但在这种上下文下是不允许的。

也可以通过 UV_CONFIG_FILE 环境变量设置。

--directory directory

在运行命令之前切换到指定目录。

相对路径将以给定目录为基础进行解析。

参见 --project 仅更改项目根目录。

也可以通过 UV_WORKING_DIR 环境变量设置。

--dry-run

执行不上传文件的试运行。

启用后,如果提供了 --check-url,该命令将检查现有文件,并将在支持的情况下根据索引执行验证,但不会上传任何文件。

--help, -h

显示此命令的简明帮助信息

--index index

配置中用于发布的索引名称。

索引必须具有 publish-url 设置,例如

[[tool.uv.index]]
name = "pypi"
url = "https://pypi.ac.cn/simple"
publish-url = "https://upload.pypi.org/legacy/"

索引 url 将用于检查现有文件以跳过重复上传。

使用这些设置,以下两个调用是等效的

uv publish --index pypi
uv publish --publish-url https://upload.pypi.org/legacy/ --check-url https://pypi.ac.cn/simple

也可以通过 UV_PUBLISH_INDEX 环境变量进行设置。

--keyring-provider keyring-provider

尝试使用 keyring 对远程要求文件进行身份验证。

目前,仅支持 --keyring-provider subprocess,它将 uv 配置为使用 keyring CLI 来处理身份验证。

默认为 disabled

也可以通过 UV_KEYRING_PROVIDER 环境变量设置。

可选值

  • disabled:不使用密钥环进行凭据查找
  • subprocess:使用 keyring 命令进行凭据查找
--managed-python

要求使用 uv 管理的 Python 版本 [环境变量: UV_MANAGED_PYTHON=]

默认情况下,uv 优先使用其管理的 Python 版本。但是,如果未安装 uv 管理的 Python,它将使用系统 Python 版本。此选项将禁用系统 Python 版本的调用。

--native-tls

是否从平台的原生存储中加载 TLS 证书 [环境变量: UV_NATIVE_TLS=]

默认情况下,uv 从绑定的 webpki-roots crate 中加载证书。webpki-roots 是一组来自 Mozilla 的可靠信任根,在 uv 中包含它们可提高可移植性和性能(特别是在 macOS 上)。

然而,在某些情况下,您可能希望使用平台的原生证书存储,特别是当您依赖于系统证书存储中包含的公司信任根(例如强制代理)时。

--no-attestations

不要上传已发布文件的证明。

默认情况下,uv 尝试在发布每个分发包时上传匹配的 PEP 740 证明。

也可以通过 UV_PUBLISH_NO_ATTESTATIONS 环境变量进行设置。

--no-cache, --no-cache-dir, -n

避免从缓存中读取或写入缓存,而是在操作期间使用临时目录

也可以通过 UV_NO_CACHE 环境变量设置。

--no-config

避免发现配置文件(pyproject.tomluv.toml)。

通常,会在当前目录、父目录或用户配置目录中发现配置文件。

也可以通过 UV_NO_CONFIG 环境变量设置。

--no-managed-python

禁用对 uv 管理的 Python 版本的使用 [环境变量: UV_NO_MANAGED_PYTHON=]

相反,uv 将在系统上搜索合适的 Python 版本。

--no-progress

隐藏所有进度输出 [环境变量: UV_NO_PROGRESS=]

例如,微调器或进度条。

--no-python-downloads

禁用 Python 的自动下载。

--offline

禁用网络访问 [环境变量: UV_OFFLINE=]

禁用时,uv 将仅使用本地缓存的数据和本地可用的文件。

--password, -p password

上传密码

也可以通过 UV_PUBLISH_PASSWORD 环境变量进行设置。

--project project

在给定目录中发现项目。

所有 pyproject.tomluv.toml.python-version 文件都将通过从项目根目录向上遍历目录树来发现,项目的虚拟环境 (.venv) 也是如此。

其他命令行参数(例如相对路径)将相对于当前工作目录进行解析。

参见 --directory 以完全更改工作目录。

当在 uv pip 接口中使用时,此设置无效。

也可以通过 UV_PROJECT 环境变量设置。

--publish-url publish-url

上传端点的 URL(而不是索引 URL)。

请注意,索引访问(例如 https:://.../simple)和索引上传通常有不同的 URL。

默认为 PyPI 的发布 URL (https://upload.pypi.org/legacy/)。

也可以通过 UV_PUBLISH_URL 环境变量进行设置。

--quiet, -q

使用安静输出。

重复此选项,例如 -qq,将启用静默模式,其中 uv 不会将任何输出写入标准输出。

--token, -t token

上传令牌。

使用令牌等同于传递 __token__ 作为 --username,并将令牌作为 --password

也可以通过 UV_PUBLISH_TOKEN 环境变量进行设置。

--trusted-publishing trusted-publishing

配置受信任的发布。

默认情况下,uv 在支持的环境中运行时会检查受信任的发布,但如果未配置则会忽略它。

uv 支持受信任发布的环境包括 GitHub Actions 和 GitLab CI/CD。

可选值

  • automatic:当我们处于受支持的环境中时尝试受信任的发布,如果失败则继续
  • always
  • never
--username, -u username

上传用户名

也可以通过 UV_PUBLISH_USERNAME 环境变量进行设置。

--verbose, -v

使用详细输出。

您可以使用 RUST_LOG 环境变量配置细粒度日志记录。(https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html#directives

uv cache

管理 uv 的缓存

用法

uv cache [OPTIONS] <COMMAND>

命令

uv cache clean

清除缓存,删除所有条目或与特定包关联的条目

uv cache prune

从缓存中修剪所有不可达的对象

uv cache dir

显示缓存目录

uv cache size

显示缓存大小

uv cache clean

清除缓存,删除所有条目或与特定包关联的条目

用法

uv cache clean [OPTIONS] [PACKAGE]...

参数

PACKAGE

要从缓存中删除的包

Options (选项)

--allow-insecure-host, --trusted-host allow-insecure-host

允许与主机建立不安全连接。

可以多次提供。

期望接收主机名(例如 localhost)、主机-端口对(例如 localhost:8080)或 URL(例如 https://)。

警告:此列表中的主机不会根据系统的证书存储进行验证。仅在具有受信任来源的安全网络中使用 --allow-insecure-host,因为它会绕过 SSL 验证,可能会使您面临 MITM 攻击。

也可以通过 UV_INSECURE_HOST 环境变量设置。

--cache-dir cache-dir

缓存目录的路径。

默认在 macOS 和 Linux 上为 $XDG_CACHE_HOME/uv$HOME/.cache/uv,在 Windows 上为 %LOCALAPPDATA%\uv\cache

要查看缓存目录的位置,请运行 uv cache dir

也可以通过 UV_CACHE_DIR 环境变量设置。

--color color-choice

控制输出中颜色的使用。

默认情况下,uv 在写入终端时会自动检测对颜色的支持。

可选值

  • auto:仅在输出到支持颜色的终端或 TTY 时启用彩色输出
  • always:无论检测到的环境如何,都启用彩色输出
  • never:禁用彩色输出
--config-file config-file

用于配置的 uv.toml 文件路径。

虽然 uv 配置可以包含在 pyproject.toml 文件中,但在这种上下文下是不允许的。

也可以通过 UV_CONFIG_FILE 环境变量设置。

--directory directory

在运行命令之前切换到指定目录。

相对路径将以给定目录为基础进行解析。

参见 --project 仅更改项目根目录。

也可以通过 UV_WORKING_DIR 环境变量设置。

--force

强制删除缓存,忽略使用中检查。

默认情况下,uv cache clean 会阻塞,直到没有进程读取缓存。当使用 --force 时,uv cache clean 将在不获取锁的情况下进行。

--help, -h

显示此命令的简明帮助信息

--managed-python

要求使用 uv 管理的 Python 版本 [环境变量: UV_MANAGED_PYTHON=]

默认情况下,uv 优先使用其管理的 Python 版本。但是,如果未安装 uv 管理的 Python,它将使用系统 Python 版本。此选项将禁用系统 Python 版本的调用。

--native-tls

是否从平台的原生存储中加载 TLS 证书 [环境变量: UV_NATIVE_TLS=]

默认情况下,uv 从绑定的 webpki-roots crate 中加载证书。webpki-roots 是一组来自 Mozilla 的可靠信任根,在 uv 中包含它们可提高可移植性和性能(特别是在 macOS 上)。

然而,在某些情况下,您可能希望使用平台的原生证书存储,特别是当您依赖于系统证书存储中包含的公司信任根(例如强制代理)时。

--no-cache, --no-cache-dir, -n

避免从缓存中读取或写入缓存,而是在操作期间使用临时目录

也可以通过 UV_NO_CACHE 环境变量设置。

--no-config

避免发现配置文件(pyproject.tomluv.toml)。

通常,会在当前目录、父目录或用户配置目录中发现配置文件。

也可以通过 UV_NO_CONFIG 环境变量设置。

--no-managed-python

禁用对 uv 管理的 Python 版本的使用 [环境变量: UV_NO_MANAGED_PYTHON=]

相反,uv 将在系统上搜索合适的 Python 版本。

--no-progress

隐藏所有进度输出 [环境变量: UV_NO_PROGRESS=]

例如,微调器或进度条。

--no-python-downloads

禁用 Python 的自动下载。

--offline

禁用网络访问 [环境变量: UV_OFFLINE=]

禁用时,uv 将仅使用本地缓存的数据和本地可用的文件。

--project project

在给定目录中发现项目。

所有 pyproject.tomluv.toml.python-version 文件都将通过从项目根目录向上遍历目录树来发现,项目的虚拟环境 (.venv) 也是如此。

其他命令行参数(例如相对路径)将相对于当前工作目录进行解析。

参见 --directory 以完全更改工作目录。

当在 uv pip 接口中使用时,此设置无效。

也可以通过 UV_PROJECT 环境变量设置。

--quiet, -q

使用安静输出。

重复此选项,例如 -qq,将启用静默模式,其中 uv 不会将任何输出写入标准输出。

--verbose, -v

使用详细输出。

您可以使用 RUST_LOG 环境变量配置细粒度日志记录。(https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html#directives

uv cache prune

从缓存中修剪所有不可达的对象

用法

uv cache prune [OPTIONS]

Options (选项)

--allow-insecure-host, --trusted-host allow-insecure-host

允许与主机建立不安全连接。

可以多次提供。

期望接收主机名(例如 localhost)、主机-端口对(例如 localhost:8080)或 URL(例如 https://)。

警告:此列表中的主机不会根据系统的证书存储进行验证。仅在具有受信任来源的安全网络中使用 --allow-insecure-host,因为它会绕过 SSL 验证,可能会使您面临 MITM 攻击。

也可以通过 UV_INSECURE_HOST 环境变量设置。

--cache-dir cache-dir

缓存目录的路径。

默认在 macOS 和 Linux 上为 $XDG_CACHE_HOME/uv$HOME/.cache/uv,在 Windows 上为 %LOCALAPPDATA%\uv\cache

要查看缓存目录的位置,请运行 uv cache dir

也可以通过 UV_CACHE_DIR 环境变量设置。

--ci

针对持续集成环境(如 GitHub Actions)中的持久性优化缓存。

默认情况下,uv 会缓存从源码构建的 wheel 以及直接下载的预构建 wheel,以实现高性能的包安装。但在某些场景下,保留预构建的 wheel 可能并不理想。例如,在 GitHub Actions 中,从缓存中排除预构建的 wheel 并让其在每次运行时重新下载往往更快。不过,缓存从源码构建的 wheel 通常确实更快,因为 wheel 构建过程(尤其是对于扩展模块)可能会非常耗时。

--ci 模式下,uv 会从缓存中清理所有预构建的 wheel,但会保留任何从源码构建的 wheel。

--color color-choice

控制输出中颜色的使用。

默认情况下,uv 在写入终端时会自动检测对颜色的支持。

可选值

  • auto:仅在输出到支持颜色的终端或 TTY 时启用彩色输出
  • always:无论检测到的环境如何,都启用彩色输出
  • never:禁用彩色输出
--config-file config-file

用于配置的 uv.toml 文件路径。

虽然 uv 配置可以包含在 pyproject.toml 文件中,但在这种上下文下是不允许的。

也可以通过 UV_CONFIG_FILE 环境变量设置。

--directory directory

在运行命令之前切换到指定目录。

相对路径将以给定目录为基础进行解析。

参见 --project 仅更改项目根目录。

也可以通过 UV_WORKING_DIR 环境变量设置。

--force

强制删除缓存,忽略使用中检查。

默认情况下,uv cache prune 会阻塞直到没有进程正在读取缓存。当使用 --force 时,uv cache prune 将在不获取锁的情况下继续执行。

--help, -h

显示此命令的简明帮助信息

--managed-python

要求使用 uv 管理的 Python 版本 [环境变量: UV_MANAGED_PYTHON=]

默认情况下,uv 优先使用其管理的 Python 版本。但是,如果未安装 uv 管理的 Python,它将使用系统 Python 版本。此选项将禁用系统 Python 版本的调用。

--native-tls

是否从平台的原生存储中加载 TLS 证书 [环境变量: UV_NATIVE_TLS=]

默认情况下,uv 从绑定的 webpki-roots crate 中加载证书。webpki-roots 是一组来自 Mozilla 的可靠信任根,在 uv 中包含它们可提高可移植性和性能(特别是在 macOS 上)。

然而,在某些情况下,您可能希望使用平台的原生证书存储,特别是当您依赖于系统证书存储中包含的公司信任根(例如强制代理)时。

--no-cache, --no-cache-dir, -n

避免从缓存中读取或写入缓存,而是在操作期间使用临时目录

也可以通过 UV_NO_CACHE 环境变量设置。

--no-config

避免发现配置文件(pyproject.tomluv.toml)。

通常,会在当前目录、父目录或用户配置目录中发现配置文件。

也可以通过 UV_NO_CONFIG 环境变量设置。

--no-managed-python

禁用对 uv 管理的 Python 版本的使用 [环境变量: UV_NO_MANAGED_PYTHON=]

相反,uv 将在系统上搜索合适的 Python 版本。

--no-progress

隐藏所有进度输出 [环境变量: UV_NO_PROGRESS=]

例如,微调器或进度条。

--no-python-downloads

禁用 Python 的自动下载。

--offline

禁用网络访问 [环境变量: UV_OFFLINE=]

禁用时,uv 将仅使用本地缓存的数据和本地可用的文件。

--project project

在给定目录中发现项目。

所有 pyproject.tomluv.toml.python-version 文件都将通过从项目根目录向上遍历目录树来发现,项目的虚拟环境 (.venv) 也是如此。

其他命令行参数(例如相对路径)将相对于当前工作目录进行解析。

参见 --directory 以完全更改工作目录。

当在 uv pip 接口中使用时,此设置无效。

也可以通过 UV_PROJECT 环境变量设置。

--quiet, -q

使用安静输出。

重复此选项,例如 -qq,将启用静默模式,其中 uv 不会将任何输出写入标准输出。

--verbose, -v

使用详细输出。

您可以使用 RUST_LOG 环境变量配置细粒度日志记录。(https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html#directives

uv cache dir

显示缓存目录。

默认情况下,Unix 系统上的缓存存储在 $XDG_CACHE_HOME/uv$HOME/.cache/uv 中,Windows 系统上则存储在 %LOCALAPPDATA%\uv\cache 中。

当使用 --no-cache 时,缓存存储在临时目录中,并在进程退出时被丢弃。

可以通过 cache-dir 设置、--cache-dir 选项或 $UV_CACHE_DIR 环境变量指定备选缓存目录。

请注意,为了保证性能,缓存目录与 uv 操作的 Python 环境位于同一文件系统上非常重要。

用法

uv cache dir [OPTIONS]

Options (选项)

--allow-insecure-host, --trusted-host allow-insecure-host

允许与主机建立不安全连接。

可以多次提供。

期望接收主机名(例如 localhost)、主机-端口对(例如 localhost:8080)或 URL(例如 https://)。

警告:此列表中的主机不会根据系统的证书存储进行验证。仅在具有受信任来源的安全网络中使用 --allow-insecure-host,因为它会绕过 SSL 验证,可能会使您面临 MITM 攻击。

也可以通过 UV_INSECURE_HOST 环境变量设置。

--cache-dir cache-dir

缓存目录的路径。

默认在 macOS 和 Linux 上为 $XDG_CACHE_HOME/uv$HOME/.cache/uv,在 Windows 上为 %LOCALAPPDATA%\uv\cache

要查看缓存目录的位置,请运行 uv cache dir

也可以通过 UV_CACHE_DIR 环境变量设置。

--color color-choice

控制输出中颜色的使用。

默认情况下,uv 在写入终端时会自动检测对颜色的支持。

可选值

  • auto:仅在输出到支持颜色的终端或 TTY 时启用彩色输出
  • always:无论检测到的环境如何,都启用彩色输出
  • never:禁用彩色输出
--config-file config-file

用于配置的 uv.toml 文件路径。

虽然 uv 配置可以包含在 pyproject.toml 文件中,但在这种上下文下是不允许的。

也可以通过 UV_CONFIG_FILE 环境变量设置。

--directory directory

在运行命令之前切换到指定目录。

相对路径将以给定目录为基础进行解析。

参见 --project 仅更改项目根目录。

也可以通过 UV_WORKING_DIR 环境变量设置。

--help, -h

显示此命令的简明帮助信息

--managed-python

要求使用 uv 管理的 Python 版本 [环境变量: UV_MANAGED_PYTHON=]

默认情况下,uv 优先使用其管理的 Python 版本。但是,如果未安装 uv 管理的 Python,它将使用系统 Python 版本。此选项将禁用系统 Python 版本的调用。

--native-tls

是否从平台的原生存储中加载 TLS 证书 [环境变量: UV_NATIVE_TLS=]

默认情况下,uv 从绑定的 webpki-roots crate 中加载证书。webpki-roots 是一组来自 Mozilla 的可靠信任根,在 uv 中包含它们可提高可移植性和性能(特别是在 macOS 上)。

然而,在某些情况下,您可能希望使用平台的原生证书存储,特别是当您依赖于系统证书存储中包含的公司信任根(例如强制代理)时。

--no-cache, --no-cache-dir, -n

避免从缓存中读取或写入缓存,而是在操作期间使用临时目录

也可以通过 UV_NO_CACHE 环境变量设置。

--no-config

避免发现配置文件(pyproject.tomluv.toml)。

通常,会在当前目录、父目录或用户配置目录中发现配置文件。

也可以通过 UV_NO_CONFIG 环境变量设置。

--no-managed-python

禁用对 uv 管理的 Python 版本的使用 [环境变量: UV_NO_MANAGED_PYTHON=]

相反,uv 将在系统上搜索合适的 Python 版本。

--no-progress

隐藏所有进度输出 [环境变量: UV_NO_PROGRESS=]

例如,微调器或进度条。

--no-python-downloads

禁用 Python 的自动下载。

--offline

禁用网络访问 [环境变量: UV_OFFLINE=]

禁用时,uv 将仅使用本地缓存的数据和本地可用的文件。

--project project

在给定目录中发现项目。

所有 pyproject.tomluv.toml.python-version 文件都将通过从项目根目录向上遍历目录树来发现,项目的虚拟环境 (.venv) 也是如此。

其他命令行参数(例如相对路径)将相对于当前工作目录进行解析。

参见 --directory 以完全更改工作目录。

当在 uv pip 接口中使用时,此设置无效。

也可以通过 UV_PROJECT 环境变量设置。

--quiet, -q

使用安静输出。

重复此选项,例如 -qq,将启用静默模式,其中 uv 不会将任何输出写入标准输出。

--verbose, -v

使用详细输出。

您可以使用 RUST_LOG 环境变量配置细粒度日志记录。(https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html#directives

uv cache size

显示缓存大小。

显示缓存目录的总大小。这包括所有下载和构建的 wheel、源码分发包以及其他缓存数据。默认情况下,以原始字节数输出;使用 --human 可获得人类可读的输出。

用法

uv cache size [OPTIONS]

Options (选项)

--allow-insecure-host, --trusted-host allow-insecure-host

允许与主机建立不安全连接。

可以多次提供。

期望接收主机名(例如 localhost)、主机-端口对(例如 localhost:8080)或 URL(例如 https://)。

警告:此列表中的主机不会根据系统的证书存储进行验证。仅在具有受信任来源的安全网络中使用 --allow-insecure-host,因为它会绕过 SSL 验证,可能会使您面临 MITM 攻击。

也可以通过 UV_INSECURE_HOST 环境变量设置。

--cache-dir cache-dir

缓存目录的路径。

默认在 macOS 和 Linux 上为 $XDG_CACHE_HOME/uv$HOME/.cache/uv,在 Windows 上为 %LOCALAPPDATA%\uv\cache

要查看缓存目录的位置,请运行 uv cache dir

也可以通过 UV_CACHE_DIR 环境变量设置。

--color color-choice

控制输出中颜色的使用。

默认情况下,uv 在写入终端时会自动检测对颜色的支持。

可选值

  • auto:仅在输出到支持颜色的终端或 TTY 时启用彩色输出
  • always:无论检测到的环境如何,都启用彩色输出
  • never:禁用彩色输出
--config-file config-file

用于配置的 uv.toml 文件路径。

虽然 uv 配置可以包含在 pyproject.toml 文件中,但在这种上下文下是不允许的。

也可以通过 UV_CONFIG_FILE 环境变量设置。

--directory directory

在运行命令之前切换到指定目录。

相对路径将以给定目录为基础进行解析。

参见 --project 仅更改项目根目录。

也可以通过 UV_WORKING_DIR 环境变量设置。

--help, -h

显示此命令的简明帮助信息

--human, --human-readable, -H

以人类可读格式显示缓存大小(例如 1.2 GiB,而不是原始字节数)

--managed-python

要求使用 uv 管理的 Python 版本 [环境变量: UV_MANAGED_PYTHON=]

默认情况下,uv 优先使用其管理的 Python 版本。但是,如果未安装 uv 管理的 Python,它将使用系统 Python 版本。此选项将禁用系统 Python 版本的调用。

--native-tls

是否从平台的原生存储中加载 TLS 证书 [环境变量: UV_NATIVE_TLS=]

默认情况下,uv 从绑定的 webpki-roots crate 中加载证书。webpki-roots 是一组来自 Mozilla 的可靠信任根,在 uv 中包含它们可提高可移植性和性能(特别是在 macOS 上)。

然而,在某些情况下,您可能希望使用平台的原生证书存储,特别是当您依赖于系统证书存储中包含的公司信任根(例如强制代理)时。

--no-cache, --no-cache-dir, -n

避免从缓存中读取或写入缓存,而是在操作期间使用临时目录

也可以通过 UV_NO_CACHE 环境变量设置。

--no-config

避免发现配置文件(pyproject.tomluv.toml)。

通常,会在当前目录、父目录或用户配置目录中发现配置文件。

也可以通过 UV_NO_CONFIG 环境变量设置。

--no-managed-python

禁用对 uv 管理的 Python 版本的使用 [环境变量: UV_NO_MANAGED_PYTHON=]

相反,uv 将在系统上搜索合适的 Python 版本。

--no-progress

隐藏所有进度输出 [环境变量: UV_NO_PROGRESS=]

例如,微调器或进度条。

--no-python-downloads

禁用 Python 的自动下载。

--offline

禁用网络访问 [环境变量: UV_OFFLINE=]

禁用时,uv 将仅使用本地缓存的数据和本地可用的文件。

--project project

在给定目录中发现项目。

所有 pyproject.tomluv.toml.python-version 文件都将通过从项目根目录向上遍历目录树来发现,项目的虚拟环境 (.venv) 也是如此。

其他命令行参数(例如相对路径)将相对于当前工作目录进行解析。

参见 --directory 以完全更改工作目录。

当在 uv pip 接口中使用时,此设置无效。

也可以通过 UV_PROJECT 环境变量设置。

--quiet, -q

使用安静输出。

重复此选项,例如 -qq,将启用静默模式,其中 uv 不会将任何输出写入标准输出。

--verbose, -v

使用详细输出。

您可以使用 RUST_LOG 环境变量配置细粒度日志记录。(https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html#directives

uv self

管理 uv 可执行文件

用法

uv self [OPTIONS] <COMMAND>

命令

uv self update

更新 uv

uv self version

显示 uv 的版本

uv self update

更新 uv

用法

uv self update [OPTIONS] [TARGET_VERSION]

参数

TARGET_VERSION

更新至指定版本。如果未提供,uv 将更新至最新版本

Options (选项)

--allow-insecure-host, --trusted-host allow-insecure-host

允许与主机建立不安全连接。

可以多次提供。

期望接收主机名(例如 localhost)、主机-端口对(例如 localhost:8080)或 URL(例如 https://)。

警告:此列表中的主机不会根据系统的证书存储进行验证。仅在具有受信任来源的安全网络中使用 --allow-insecure-host,因为它会绕过 SSL 验证,可能会使您面临 MITM 攻击。

也可以通过 UV_INSECURE_HOST 环境变量设置。

--cache-dir cache-dir

缓存目录的路径。

默认在 macOS 和 Linux 上为 $XDG_CACHE_HOME/uv$HOME/.cache/uv,在 Windows 上为 %LOCALAPPDATA%\uv\cache

要查看缓存目录的位置,请运行 uv cache dir

也可以通过 UV_CACHE_DIR 环境变量设置。

--color color-choice

控制输出中颜色的使用。

默认情况下,uv 在写入终端时会自动检测对颜色的支持。

可选值

  • auto:仅在输出到支持颜色的终端或 TTY 时启用彩色输出
  • always:无论检测到的环境如何,都启用彩色输出
  • never:禁用彩色输出
--config-file config-file

用于配置的 uv.toml 文件路径。

虽然 uv 配置可以包含在 pyproject.toml 文件中,但在这种上下文下是不允许的。

也可以通过 UV_CONFIG_FILE 环境变量设置。

--directory directory

在运行命令之前切换到指定目录。

相对路径将以给定目录为基础进行解析。

参见 --project 仅更改项目根目录。

也可以通过 UV_WORKING_DIR 环境变量设置。

--dry-run

运行但不执行更新

--help, -h

显示此命令的简明帮助信息

--managed-python

要求使用 uv 管理的 Python 版本 [环境变量: UV_MANAGED_PYTHON=]

默认情况下,uv 优先使用其管理的 Python 版本。但是,如果未安装 uv 管理的 Python,它将使用系统 Python 版本。此选项将禁用系统 Python 版本的调用。

--native-tls

是否从平台的原生存储中加载 TLS 证书 [环境变量: UV_NATIVE_TLS=]

默认情况下,uv 从绑定的 webpki-roots crate 中加载证书。webpki-roots 是一组来自 Mozilla 的可靠信任根,在 uv 中包含它们可提高可移植性和性能(特别是在 macOS 上)。

然而,在某些情况下,您可能希望使用平台的原生证书存储,特别是当您依赖于系统证书存储中包含的公司信任根(例如强制代理)时。

--no-cache, --no-cache-dir, -n

避免从缓存中读取或写入缓存,而是在操作期间使用临时目录

也可以通过 UV_NO_CACHE 环境变量设置。

--no-config

避免发现配置文件(pyproject.tomluv.toml)。

通常,会在当前目录、父目录或用户配置目录中发现配置文件。

也可以通过 UV_NO_CONFIG 环境变量设置。

--no-managed-python

禁用对 uv 管理的 Python 版本的使用 [环境变量: UV_NO_MANAGED_PYTHON=]

相反,uv 将在系统上搜索合适的 Python 版本。

--no-progress

隐藏所有进度输出 [环境变量: UV_NO_PROGRESS=]

例如,微调器或进度条。

--no-python-downloads

禁用 Python 的自动下载。

--offline

禁用网络访问 [环境变量: UV_OFFLINE=]

禁用时,uv 将仅使用本地缓存的数据和本地可用的文件。

--project project

在给定目录中发现项目。

所有 pyproject.tomluv.toml.python-version 文件都将通过从项目根目录向上遍历目录树来发现,项目的虚拟环境 (.venv) 也是如此。

其他命令行参数(例如相对路径)将相对于当前工作目录进行解析。

参见 --directory 以完全更改工作目录。

当在 uv pip 接口中使用时,此设置无效。

也可以通过 UV_PROJECT 环境变量设置。

--quiet, -q

使用安静输出。

重复此选项,例如 -qq,将启用静默模式,其中 uv 不会将任何输出写入标准输出。

--token token

用于身份验证的 GitHub 令牌。令牌不是必需的,但可用于减少遇到速率限制的可能性

也可以通过 UV_GITHUB_TOKEN 环境变量设置。

--verbose, -v

使用详细输出。

您可以使用 RUST_LOG 环境变量配置细粒度日志记录。(https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html#directives

uv self version

显示 uv 的版本

用法

uv self version [OPTIONS]

Options (选项)

--allow-insecure-host, --trusted-host allow-insecure-host

允许与主机建立不安全连接。

可以多次提供。

期望接收主机名(例如 localhost)、主机-端口对(例如 localhost:8080)或 URL(例如 https://)。

警告:此列表中的主机不会根据系统的证书存储进行验证。仅在具有受信任来源的安全网络中使用 --allow-insecure-host,因为它会绕过 SSL 验证,可能会使您面临 MITM 攻击。

也可以通过 UV_INSECURE_HOST 环境变量设置。

--cache-dir cache-dir

缓存目录的路径。

默认在 macOS 和 Linux 上为 $XDG_CACHE_HOME/uv$HOME/.cache/uv,在 Windows 上为 %LOCALAPPDATA%\uv\cache

要查看缓存目录的位置,请运行 uv cache dir

也可以通过 UV_CACHE_DIR 环境变量设置。

--color color-choice

控制输出中颜色的使用。

默认情况下,uv 在写入终端时会自动检测对颜色的支持。

可选值

  • auto:仅在输出到支持颜色的终端或 TTY 时启用彩色输出
  • always:无论检测到的环境如何,都启用彩色输出
  • never:禁用彩色输出
--config-file config-file

用于配置的 uv.toml 文件路径。

虽然 uv 配置可以包含在 pyproject.toml 文件中,但在这种上下文下是不允许的。

也可以通过 UV_CONFIG_FILE 环境变量设置。

--directory directory

在运行命令之前切换到指定目录。

相对路径将以给定目录为基础进行解析。

参见 --project 仅更改项目根目录。

也可以通过 UV_WORKING_DIR 环境变量设置。

--help, -h

显示此命令的简明帮助信息

--managed-python

要求使用 uv 管理的 Python 版本 [环境变量: UV_MANAGED_PYTHON=]

默认情况下,uv 优先使用其管理的 Python 版本。但是,如果未安装 uv 管理的 Python,它将使用系统 Python 版本。此选项将禁用系统 Python 版本的调用。

--native-tls

是否从平台的原生存储中加载 TLS 证书 [环境变量: UV_NATIVE_TLS=]

默认情况下,uv 从绑定的 webpki-roots crate 中加载证书。webpki-roots 是一组来自 Mozilla 的可靠信任根,在 uv 中包含它们可提高可移植性和性能(特别是在 macOS 上)。

然而,在某些情况下,您可能希望使用平台的原生证书存储,特别是当您依赖于系统证书存储中包含的公司信任根(例如强制代理)时。

--no-cache, --no-cache-dir, -n

避免从缓存中读取或写入缓存,而是在操作期间使用临时目录

也可以通过 UV_NO_CACHE 环境变量设置。

--no-config

避免发现配置文件(pyproject.tomluv.toml)。

通常,会在当前目录、父目录或用户配置目录中发现配置文件。

也可以通过 UV_NO_CONFIG 环境变量设置。

--no-managed-python

禁用对 uv 管理的 Python 版本的使用 [环境变量: UV_NO_MANAGED_PYTHON=]

相反,uv 将在系统上搜索合适的 Python 版本。

--no-progress

隐藏所有进度输出 [环境变量: UV_NO_PROGRESS=]

例如,微调器或进度条。

--no-python-downloads

禁用 Python 的自动下载。

--offline

禁用网络访问 [环境变量: UV_OFFLINE=]

禁用时,uv 将仅使用本地缓存的数据和本地可用的文件。

--output-format output-format
--project project

在给定目录中发现项目。

所有 pyproject.tomluv.toml.python-version 文件都将通过从项目根目录向上遍历目录树来发现,项目的虚拟环境 (.venv) 也是如此。

其他命令行参数(例如相对路径)将相对于当前工作目录进行解析。

参见 --directory 以完全更改工作目录。

当在 uv pip 接口中使用时,此设置无效。

也可以通过 UV_PROJECT 环境变量设置。

--quiet, -q

使用安静输出。

重复此选项,例如 -qq,将启用静默模式,其中 uv 不会将任何输出写入标准输出。

--short

仅打印版本号

--verbose, -v

使用详细输出。

您可以使用 RUST_LOG 环境变量配置细粒度日志记录。(https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html#directives

uv generate-shell-completion

生成 shell 补全脚本

用法

uv generate-shell-completion [OPTIONS] <SHELL>

参数

SHELL

要为其生成补全脚本的 shell

Options (选项)

--allow-insecure-host, --trusted-host allow-insecure-host

允许与主机建立不安全连接。

可以多次提供。

期望接收主机名(例如 localhost)、主机-端口对(例如 localhost:8080)或 URL(例如 https://)。

警告:此列表中的主机不会根据系统的证书存储进行验证。仅在具有受信任来源的安全网络中使用 --allow-insecure-host,因为它会绕过 SSL 验证,可能会使您面临 MITM 攻击。

也可以通过 UV_INSECURE_HOST 环境变量设置。

--directory directory

在运行命令之前切换到指定目录。

相对路径将以给定目录为基础进行解析。

参见 --project 仅更改项目根目录。

也可以通过 UV_WORKING_DIR 环境变量设置。

--managed-python

要求使用 uv 管理的 Python 版本 [环境变量: UV_MANAGED_PYTHON=]

默认情况下,uv 优先使用其管理的 Python 版本。但是,如果未安装 uv 管理的 Python,它将使用系统 Python 版本。此选项将禁用系统 Python 版本的调用。

--no-managed-python

禁用对 uv 管理的 Python 版本的使用 [环境变量: UV_NO_MANAGED_PYTHON=]

相反,uv 将在系统上搜索合适的 Python 版本。

--project project

在给定目录中发现项目。

所有 pyproject.tomluv.toml.python-version 文件都将通过从项目根目录向上遍历目录树来发现,项目的虚拟环境 (.venv) 也是如此。

其他命令行参数(例如相对路径)将相对于当前工作目录进行解析。

参见 --directory 以完全更改工作目录。

当在 uv pip 接口中使用时,此设置无效。

也可以通过 UV_PROJECT 环境变量设置。

uv help

显示命令的文档

用法

uv help [OPTIONS] [COMMAND]...

参数

COMMAND

Options (选项)

--allow-insecure-host, --trusted-host allow-insecure-host

允许与主机建立不安全连接。

可以多次提供。

期望接收主机名(例如 localhost)、主机-端口对(例如 localhost:8080)或 URL(例如 https://)。

警告:此列表中的主机不会根据系统的证书存储进行验证。仅在具有受信任来源的安全网络中使用 --allow-insecure-host,因为它会绕过 SSL 验证,可能会使您面临 MITM 攻击。

也可以通过 UV_INSECURE_HOST 环境变量设置。

--cache-dir cache-dir

缓存目录的路径。

默认在 macOS 和 Linux 上为 $XDG_CACHE_HOME/uv$HOME/.cache/uv,在 Windows 上为 %LOCALAPPDATA%\uv\cache

要查看缓存目录的位置,请运行 uv cache dir

也可以通过 UV_CACHE_DIR 环境变量设置。

--color color-choice

控制输出中颜色的使用。

默认情况下,uv 在写入终端时会自动检测对颜色的支持。

可选值

  • auto:仅在输出到支持颜色的终端或 TTY 时启用彩色输出
  • always:无论检测到的环境如何,都启用彩色输出
  • never:禁用彩色输出
--config-file config-file

用于配置的 uv.toml 文件路径。

虽然 uv 配置可以包含在 pyproject.toml 文件中,但在这种上下文下是不允许的。

也可以通过 UV_CONFIG_FILE 环境变量设置。

--directory directory

在运行命令之前切换到指定目录。

相对路径将以给定目录为基础进行解析。

参见 --project 仅更改项目根目录。

也可以通过 UV_WORKING_DIR 环境变量设置。

--help, -h

显示此命令的简明帮助信息

--managed-python

要求使用 uv 管理的 Python 版本 [环境变量: UV_MANAGED_PYTHON=]

默认情况下,uv 优先使用其管理的 Python 版本。但是,如果未安装 uv 管理的 Python,它将使用系统 Python 版本。此选项将禁用系统 Python 版本的调用。

--native-tls

是否从平台的原生存储中加载 TLS 证书 [环境变量: UV_NATIVE_TLS=]

默认情况下,uv 从绑定的 webpki-roots crate 中加载证书。webpki-roots 是一组来自 Mozilla 的可靠信任根,在 uv 中包含它们可提高可移植性和性能(特别是在 macOS 上)。

然而,在某些情况下,您可能希望使用平台的原生证书存储,特别是当您依赖于系统证书存储中包含的公司信任根(例如强制代理)时。

--no-cache, --no-cache-dir, -n

避免从缓存中读取或写入缓存,而是在操作期间使用临时目录

也可以通过 UV_NO_CACHE 环境变量设置。

--no-config

避免发现配置文件(pyproject.tomluv.toml)。

通常,会在当前目录、父目录或用户配置目录中发现配置文件。

也可以通过 UV_NO_CONFIG 环境变量设置。

--no-managed-python

禁用对 uv 管理的 Python 版本的使用 [环境变量: UV_NO_MANAGED_PYTHON=]

相反,uv 将在系统上搜索合适的 Python 版本。

--no-pager

打印帮助信息时禁用分页器

--no-progress

隐藏所有进度输出 [环境变量: UV_NO_PROGRESS=]

例如,微调器或进度条。

--no-python-downloads

禁用 Python 的自动下载。

--offline

禁用网络访问 [环境变量: UV_OFFLINE=]

禁用时,uv 将仅使用本地缓存的数据和本地可用的文件。

--project project

在给定目录中发现项目。

所有 pyproject.tomluv.toml.python-version 文件都将通过从项目根目录向上遍历目录树来发现,项目的虚拟环境 (.venv) 也是如此。

其他命令行参数(例如相对路径)将相对于当前工作目录进行解析。

参见 --directory 以完全更改工作目录。

当在 uv pip 接口中使用时,此设置无效。

也可以通过 UV_PROJECT 环境变量设置。

--quiet, -q

使用安静输出。

重复此选项,例如 -qq,将启用静默模式,其中 uv 不会将任何输出写入标准输出。

--verbose, -v

使用详细输出。

您可以使用 RUST_LOG 环境变量配置细粒度日志记录。(https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html#directives