环境变量
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_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
。)
UV_FIND_LINKS
等同于 --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_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_LINK_MODE
等同于 --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
库。
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_INSTALLER_METADATA
跳过将 uv
安装程序元数据文件(例如 INSTALLER
、REQUESTED
和 direct_url.json
)写入站点包的 .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_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_PREFERENCE
uv 应优先使用系统 Python 版本还是托管 Python 版本。
UV_REQUEST_TIMEOUT
HTTP 请求的超时时间(以秒为单位)。等同于 UV_HTTP_TIMEOUT
。
UV_REQUIRE_HASHES
等同于 --require-hashes
命令行参数。如果设置为 true
,
uv 将要求需求文件中指定的所有依赖项都有哈希值。
UV_RESOLUTION
等同于 --resolution
命令行参数。例如,如果设置为
lowest-direct
,uv 将安装所有直接依赖项的最低兼容版本。
UV_STACK_SIZE
用于设置 uv 使用的栈大小。
值的单位为字节,如果 UV_STACK_SIZE
和 RUST_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_TOOL_BIN_DIR
指定用于安装工具可执行文件的 “bin” 目录。
UV_TOOL_DIR
指定 uv 存储托管工具的目录。
UV_TORCH_BACKEND
等同于 --torch-backend
命令行参数(例如 cpu
、cu126
或 auto
)。
UV_UNMANAGED_INSTALL
在诸如 CI 这样的临时环境中使用,将 uv 安装到特定路径,同时防止安装程序修改 shell 配置文件或环境变量。
UV_VENV_SEED
将种子包(pip
、setuptools
和 wheel
中的一个或多个)安装到由 uv venv
创建的虚拟环境中。
请注意,setuptools
和 wheel
不包含在 Python 3.12 及更高版本的环境中。
外部定义的变量
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 安装的 Python。
MACOSX_DEPLOYMENT_TARGET
与 --python-platform macos
及相关变体一起使用,以设置部署目标(即支持的最低 macOS 版本)。
默认值为 13.0
,这是编写本文时最新的非终止支持的 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
库兼容的过滤器。
例如:
* RUST_LOG=uv=debug
等同于在命令行中添加 --verbose
。
* RUST_LOG=trace
将启用跟踪级别的日志记录。
更多信息请参阅 tracing 文档。
RUST_MIN_STACK
用于设置 uv 使用的栈大小。
该值以字节为单位,如果 UV_STACK_SIZE
和 RUST_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.org/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。