跳到内容

环境变量

uv 定义和遵循以下环境变量

UV_BREAK_SYSTEM_PACKAGES

等效于 --break-system-packages 命令行参数。如果设置为 true,uv 将允许安装与系统安装的软件包冲突的软件包。

警告:UV_BREAK_SYSTEM_PACKAGES=true 旨在用于持续集成 (CI) 或容器化环境,应谨慎使用,因为修改系统 Python 可能会导致意外行为。

UV_BUILD_CONSTRAINT

等效于 --build-constraint 命令行参数。如果设置,uv 将使用此文件作为任何源分发构建的约束。使用空格分隔的文件列表。

UV_CACHE_DIR

等效于 --cache-dir 命令行参数。如果设置,uv 将使用此目录进行缓存,而不是默认缓存目录。

UV_COMPILE_BYTECODE

等效于 --compile-bytecode 命令行参数。如果设置,uv 将在安装后将 Python 源文件编译为字节码。

UV_COMPILE_BYTECODE_TIMEOUT

字节码编译的超时时间(以秒为单位)。

UV_CONCURRENT_BUILDS

设置 uv 在任何给定时间将并发构建的源分发包的最大数量。

UV_CONCURRENT_DOWNLOADS

设置 uv 在任何给定时间将执行的并发下载的最大数量。

UV_CONCURRENT_INSTALLS

控制安装和解压缩软件包时使用的线程数。

UV_CONFIG_FILE

等效于 --config-file 命令行参数。需要一个指向本地 uv.toml 文件的路径以用作配置文件。

UV_CONSTRAINT

等效于 --constraint 命令行参数。如果设置,uv 将使用此文件作为约束文件。使用空格分隔的文件列表。

UV_CUSTOM_COMPILE_COMMAND

等效于 --custom-compile-command 命令行参数。

用于覆盖 uv pip compile 生成的 requirements.txt 文件输出标题中的 uv。旨在用于从包装脚本中调用 uv pip compile 的用例,以将包装脚本的名称包含在输出文件中。

UV_DEFAULT_INDEX

等效于 --default-index 命令行参数。如果设置,uv 将使用此 URL 作为搜索软件包时的默认索引。

UV_ENV_FILE

在执行 uv run 命令时从中加载环境变量的 .env 文件。

UV_EXCLUDE_NEWER

等效于 --exclude-newer 命令行参数。如果设置,uv 将排除在指定日期之后发布的发行版。

UV_EXTRA_INDEX_URL

等效于 --extra-index-url 命令行参数。如果设置,uv 将使用此空格分隔的 URL 列表作为搜索软件包时的附加索引。(已弃用:请改用 UV_INDEX。)

等效于 --find-links 命令行参数。如果设置,uv 将使用此逗号分隔的附加位置列表来搜索软件包。

UV_FORK_STRATEGY

等效于 --fork-strategy 参数。控制通用解析期间的版本选择。

UV_FROZEN

等效于 --frozen 命令行参数。如果设置,uv 将在不更新 uv.lock 文件的情况下运行。

UV_GITHUB_TOKEN

等效于自更新的 --token 参数。用于身份验证的 GitHub 令牌。

UV_GIT_LFS

启用从 Git 存储库安装软件包时获取存储在 Git LFS 中的文件。

UV_HTTP_RETRIES

HTTP 请求的重试次数。(默认值:3)

UV_HTTP_TIMEOUT

HTTP 请求的超时时间(以秒为单位)。(默认值:30 秒)

UV_INDEX

等效于 --index 命令行参数。如果设置,uv 将使用此空格分隔的 URL 列表作为搜索软件包时的附加索引。

UV_INDEX_STRATEGY

等效于 --index-strategy 命令行参数。

例如,如果设置为 unsafe-best-match,uv 将考虑给定软件包在所有索引 URL 中可用的版本,而不是将其搜索限制为包含该软件包的第一个索引 URL。

UV_INDEX_URL

等效于 --index-url 命令行参数。如果设置,uv 将使用此 URL 作为搜索软件包时的默认索引。(已弃用:请改用 UV_DEFAULT_INDEX。)

UV_INDEX_{name}_PASSWORD

为指定的索引提供 HTTP 基本身份验证密码。

name 参数是索引的名称。例如,给定一个名为 foo 的索引,环境变量键将为 UV_INDEX_FOO_PASSWORD

UV_INDEX_{name}_USERNAME

为指定的索引提供 HTTP 基本身份验证用户名。

name 参数是索引的名称。例如,给定一个名为 foo 的索引,环境变量键将为 UV_INDEX_FOO_USERNAME

UV_INSECURE_HOST

等效于 --allow-insecure-host 参数。

UV_INSTALLER_GHE_BASE_URL

使用独立安装程序和 self update 功能下载 uv 的 URL,而不是默认的 GitHub Enterprise URL。

UV_INSTALLER_GITHUB_BASE_URL

使用独立安装程序和 self update 功能下载 uv 的 URL,而不是默认的 GitHub URL。

UV_INSTALL_DIR

使用独立安装程序和 self update 功能安装 uv 的目录。默认为 ~/.local/bin

UV_KEYRING_PROVIDER

等效于 --keyring-provider 命令行参数。如果设置,uv 将使用此值作为密钥环提供程序。

UV_LIBC

在填充 Python 版本请求中的当前平台时,覆盖 Linux 系统上环境确定的 libc。选项有:gnugnueabignueabihfmuslnone

等效于 --link-mode 命令行参数。如果设置,uv 将使用此作为链接模式。

UV_LOCKED

等效于 --locked 命令行参数。如果设置,uv 将断言 uv.lock 保持不变。

UV_LOG_CONTEXT

向日志消息添加额外的上下文和结构。

如果未启用日志记录,例如使用 RUST_LOG-v,则此设置无效。

UV_MANAGED_PYTHON

要求使用 uv 管理的 Python 版本。

UV_NATIVE_TLS

等效于 --native-tls 命令行参数。如果设置为 true,uv 将使用系统的信任存储,而不是捆绑的 webpki-roots crate。

UV_NO_BINARY

等效于 --no-binary 命令行参数。如果设置,uv 将从源代码安装所有软件包。解析器仍将使用预构建的 wheel 来提取软件包元数据(如果可用)。

UV_NO_BINARY_PACKAGE

等效于 --no-binary-package 命令行参数。如果设置,uv 将不使用给定空格分隔的软件包列表的预构建 wheel。

UV_NO_BUILD

等效于 --no-build 命令行参数。如果设置,uv 将不构建源分发。

UV_NO_BUILD_ISOLATION

等效于 --no-build-isolation 命令行参数。如果设置,uv 将在构建源分发时跳过隔离。

UV_NO_BUILD_PACKAGE

等效于 --no-build-package 命令行参数。如果设置,uv 将不为给定空格分隔的软件包列表构建源分发。

UV_NO_CACHE

等效于 --no-cache 命令行参数。如果设置,uv 将不使用缓存进行任何操作。

UV_NO_CONFIG

等效于 --no-config 命令行参数。如果设置,uv 将不从当前目录、父目录或用户配置目录读取任何配置文件。

UV_NO_EDITABLE

等效于 --no-editable 命令行参数。如果设置,uv 会将任何可编辑的依赖项(包括项目和任何工作区成员)安装为不可编辑的

UV_NO_ENV_FILE

在执行 uv run 命令时忽略 .env 文件。

UV_NO_GITHUB_FAST_PATH

禁用 GitHub 特定的请求,这些请求允许 uv 在某些情况下跳过 git fetch

UV_NO_INSTALLER_METADATA

跳过将 uv 安装程序元数据文件(例如 INSTALLERREQUESTEDdirect_url.json)写入 site-packages .dist-info 目录。

UV_NO_MANAGED_PYTHON

禁用使用 uv 管理的 Python 版本。

UV_NO_PROGRESS

等效于 --no-progress 命令行参数。禁用所有进度输出。例如,旋转器和进度条。

UV_NO_SYNC

等效于 --no-sync 命令行参数。如果设置,uv 将跳过更新环境。

UV_NO_VERIFY_HASHES

等效于 --no-verify-hashes 参数。禁用 requirements.txt 文件的哈希验证。

UV_NO_WRAP

用于禁用诊断的行换行。

UV_OFFLINE

等效于 --offline 命令行参数。如果设置,uv 将禁用网络访问。

UV_OVERRIDE

等效于 --override 命令行参数。如果设置,uv 将使用此文件作为覆盖文件。使用空格分隔的文件列表。

UV_PRERELEASE

等效于 --prerelease 命令行参数。例如,如果设置为 allow,uv 将允许所有依赖项的预发行版本。

UV_PREVIEW

等效于 --preview 参数。启用预览模式。

UV_PROJECT

等效于 --project 命令行参数。

UV_PROJECT_ENVIRONMENT

指定用于项目虚拟环境的目录的路径。

有关更多详细信息,请参见 项目文档

UV_PUBLISH_CHECK_URL

如果文件已存在于索引上,请勿上传文件。该值是索引的 URL。

UV_PUBLISH_INDEX

等效于 uv publish 中的 --index 命令行参数。如果设置,uv 将在配置中使用此名称索引以进行发布。

UV_PUBLISH_PASSWORD

等效于 uv publish 中的 --password 命令行参数。如果设置,uv 将使用此密码进行发布。

UV_PUBLISH_TOKEN

等效于 uv publish 中的 --token 命令行参数。如果设置,uv 将使用此令牌(用户名为 __token__)进行发布。

UV_PUBLISH_URL

等效于 --publish-url 命令行参数。与 uv publish 一起使用的索引的上传端点的 URL。

UV_PUBLISH_USERNAME

等效于 uv publish 中的 --username 命令行参数。如果设置,uv 将使用此用户名进行发布。

UV_PYPY_INSTALL_MIRROR

托管的 PyPy 安装是从 python.org 下载的。

可以将此变量设置为镜像 URL,以使用 PyPy 安装的不同源。提供的 URL 将替换 https://downloads.python.org/pypy,例如 https://downloads.python.org/pypy/pypy3.8-v7.3.7-osx64.tar.bz2。可以使用 file:// URL 方案从本地目录读取发行版。

UV_PYTHON

等效于 --python 命令行参数。如果设置为路径,uv 将使用此 Python 解释器进行所有操作。

UV_PYTHON_BIN_DIR

指定放置链接到已安装的、托管的 Python 可执行文件的目录。

UV_PYTHON_CACHE_DIR

指定用于在安装前缓存托管的 Python 安装归档文件的目录。

UV_PYTHON_DOWNLOADS

等效于 python-downloads 设置,以及禁用时的 --no-python-downloads 选项。uv 是否应允许 Python 下载。

UV_PYTHON_DOWNLOADS_JSON_URL

托管的 Python 安装信息硬编码在 uv 二进制文件中。

可以将此变量设置为指向 JSON 的 URL,以用作 Python 安装列表。这将允许设置 Python 安装的每个属性,主要是脱机镜像的 url 部分。

请注意,目前仅支持本地路径。

UV_PYTHON_INSTALL_BIN

是否将 Python 可执行文件安装到 UV_PYTHON_BIN_DIR 目录中。

UV_PYTHON_INSTALL_DIR

指定用于存储托管的 Python 安装的目录。

UV_PYTHON_INSTALL_MIRROR

托管的 Python 安装是从 Astral python-build-standalone 项目下载的。

可以将此变量设置为镜像 URL,以使用 Python 安装的不同源。提供的 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 方案从本地目录读取发行版。

UV_PYTHON_INSTALL_REGISTRY

是否将 Python 可执行文件安装到 Windows 注册表中。

UV_PYTHON_PREFERENCE

uv 是否应优先使用系统或托管的 Python 版本。

UV_REQUEST_TIMEOUT

HTTP 请求的超时时间(以秒为单位)。等效于 UV_HTTP_TIMEOUT

UV_REQUIRE_HASHES

等效于 --require-hashes 命令行参数。如果设置为 true,uv 将要求所有依赖项在 requirements 文件中指定哈希值。

UV_RESOLUTION

等效于 --resolution 命令行参数。例如,如果设置为 lowest-direct,uv 将安装所有直接依赖项的最低兼容版本。

UV_STACK_SIZE

用于设置 uv 使用的堆栈大小。

该值以字节为单位,如果 UV_STACK_SIZERUST_MIN_STACK 都未设置,uv 将使用 4MB (4194304) 的堆栈。UV_STACK_SIZE 优先于 RUST_MIN_STACK

与普通的 RUST_MIN_STACK 语义不同,这会影响主线程堆栈大小,因为我们实际上生成自己的 main2 线程来解决 Windows 的真实主线程只有 1MB 的问题。该线程的大小为 max(UV_STACK_SIZE, 1MB)

UV_SYSTEM_PYTHON

等效于 --system 命令行参数。如果设置为 true,uv 将使用在系统 PATH 中找到的第一个 Python 解释器。

警告:UV_SYSTEM_PYTHON=true 旨在用于持续集成 (CI) 或容器化环境,应谨慎使用,因为修改系统 Python 可能会导致意外行为。

UV_TEST_NO_HTTP_RETRY_DELAY

用于禁用测试中 HTTP 重试的延迟。

UV_TOOL_BIN_DIR

指定用于安装工具可执行文件的 "bin" 目录。

UV_TOOL_DIR

指定 uv 存储托管工具的目录。

UV_TORCH_BACKEND

等效于 --torch-backend 命令行参数(例如,cpucu126auto)。

UV_UNMANAGED_INSTALL

使用临时环境(如 CI)将 uv 安装到特定路径,同时防止安装程序修改 shell 配置文件或环境变量。

UV_VENV_CLEAR

等效于 --clear 命令行参数。如果设置,uv 将删除目标路径中的任何现有文件或目录。

UV_VENV_SEED

将种子包(pipsetuptoolswheel 中的一个或多个)安装到 uv venv 创建的虚拟环境中。

请注意,Python 3.12+ 环境中不包含 setuptoolswheel

外部定义的变量

uv 还会读取以下外部定义的环境变量

ACTIONS_ID_TOKEN_REQUEST_TOKEN

用于通过 uv publish 进行可信发布。包含 oidc 请求令牌。

ACTIONS_ID_TOKEN_REQUEST_URL

用于通过 uv publish 进行可信发布。包含 oidc 令牌 url。

ALL_PROXY

所有网络请求的通用代理。

APPDATA

Windows 系统上用户级别配置目录的路径。

BASH_VERSION

用于检测 Bash shell 使用情况。

CLICOLOR_FORCE

用于通过 anstyle 控制颜色。

COLUMNS

覆盖用于换行的终端宽度。uv 不直接读取此变量。

这是一个准标准变量,例如在 ncurses(3x) 中进行了描述。

CONDA_DEFAULT_ENV

用于确定活动的 Conda 环境是否为基本环境。

CONDA_PREFIX

用于检测已激活的 Conda 环境。

FISH_VERSION

用于检测 Fish shell 使用情况。

FORCE_COLOR

强制彩色输出,而不管终端支持如何。

请参阅 force-color.org

GITHUB_ACTIONS

用于通过 uv publish 进行可信发布。

HOME

标准 HOME 环境变量。

HTTPS_PROXY

HTTPS 请求的代理。

HTTP_PROXY

HTTP 请求的代理。

HTTP_TIMEOUT

HTTP 请求的超时时间(以秒为单位)。等效于 UV_HTTP_TIMEOUT

INSTALLER_NO_MODIFY_PATH

使用独立安装程序和 self update 功能安装 uv 时,避免修改 PATH 环境变量。

JPY_SESSION_NAME

用于检测在 Jupyter 笔记本中运行时。

KSH_VERSION

用于检测 Ksh shell 使用情况。

LOCALAPPDATA

用于查找 Microsoft Store Pythons 安装。

MACOSX_DEPLOYMENT_TARGET

--python-platform macos 和相关变体一起使用,以设置部署目标(即,最低支持的 macOS 版本)。

默认为 13.0,即编写时最新的非 EOL macOS 版本。

NETRC

用于设置 .netrc 文件位置。

NO_COLOR

禁用彩色输出(优先于 FORCE_COLOR)。

请参阅 no-color.org

NU_VERSION

用于检测 NuShell 使用情况。

PAGER

标准 PAGER posix 环境变量。uv 使用它来配置适当的分页器。

PATH

标准 PATH 环境变量。

PROMPT

用于检测 Windows 命令提示符的使用情况(而不是 PowerShell)。

PWD

标准 PWD posix 环境变量。

PYC_INVALIDATION_MODE

--compile 一起运行时使用的验证模式。

请参阅 PycInvalidationMode

PYTHONPATH

将目录添加到 Python 模块搜索路径(例如,PYTHONPATH=/path/to/modules)。

RUST_LOG

如果设置,uv 将使用此值作为其 --verbose 输出的日志级别。接受任何与 tracing_subscriber crate 兼容的过滤器。

例如

  • RUST_LOG=uv=debug 等效于向命令行添加 --verbose
  • RUST_LOG=trace 将启用跟踪级别日志记录。

有关更多信息,请参见 tracing documentation

RUST_MIN_STACK

用于设置 uv 使用的堆栈大小。

该值以字节为单位,如果 UV_STACK_SIZERUST_MIN_STACK 都未设置,uv 将使用 4MB (4194304) 的堆栈。UV_STACK_SIZE 优先于 RUST_MIN_STACK

优先设置 UV_STACK_SIZE,因为 RUST_MIN_STACK 也会影响子进程,例如使用 Rust 代码的构建后端。

与普通的 RUST_MIN_STACK 语义不同,这会影响主线程堆栈大小,因为我们实际上生成自己的 main2 线程来解决 Windows 的真实主线程只有 1MB 的问题。该线程的大小为 max(RUST_MIN_STACK, 1MB)

SHELL

标准 SHELL posix 环境变量。

SSL_CERT_FILE

SSL 连接的自定义证书捆绑文件路径。

SSL_CLIENT_CERT

如果设置,uv 将使用此文件进行 mTLS 身份验证。这应该是一个包含 PEM 格式的证书和私钥的单个文件。

SYSTEMDRIVE

Windows 系统上系统级别配置目录的路径。

TRACING_DURATIONS_FILE

用于通过 tracing-durations-export 功能创建跟踪持续时间文件。

USERPROFILE

Windows 系统上用户配置文件根目录的路径。

UV

用于调用 uv 的二进制文件的路径。

这会传播到 uv 生成的所有子进程。

如果可执行文件是通过符号链接调用的,则某些平台将返回符号链接的路径,而其他平台将返回符号链接目标的路径。

有关安全注意事项,请参阅 https://doc.rust-lang.net.cn/std/env/fn.current_exe.html#security

VIRTUAL_ENV

用于检测已激活的虚拟环境。

VIRTUAL_ENV_DISABLE_PROMPT

如果在激活虚拟环境之前设置为 1,则虚拟环境名称不会添加到终端提示符中。

XDG_BIN_HOME

安装可执行文件的目录的路径。

XDG_CACHE_HOME

Unix 系统上缓存目录的路径。

XDG_CONFIG_DIRS

Unix 系统上系统级别配置目录的路径。

XDG_CONFIG_HOME

Unix 系统上用户级别配置目录的路径。

XDG_DATA_HOME

用于存储托管的 Python 安装和工具的目录的路径。

ZDOTDIR

用于确定使用 Zsh 时要使用哪个 .zshenv

ZSH_VERSION

用于检测 Zsh shell 使用情况。