uv check
对项目运行检查。
目前,此命令使用 ty 对 Python 代码进行类型检查(type check)。默认情况下,将检查项目中的所有 Python 文件。
用法
选项
--all-extras包含所有可选依赖项。
当在
tool.uv.conflicts中声明了两个或多个冲突的 extras 时,使用此标志将始终导致错误。请注意,所有可选依赖项始终包含在解析过程中;此选项仅影响要安装的包的选择。
--all-groups包含所有依赖组中的依赖项。
可以使用
--no-group排除特定组。--allow-insecure-host,--trusted-hostallow-insecure-host允许到主机的非安全连接。
可以多次提供。
期望接收主机名(例如
localhost)、主机-端口对(例如localhost:8080)或 URL(例如https://localhost)。警告:此列表中的主机将不会根据系统的证书存储进行验证。仅在具有已验证来源的安全网络中使用
--allow-insecure-host,因为它会绕过 SSL 验证,可能使您面临中间人攻击(MITM)的风险。也可以通过
UV_INSECURE_HOST环境变量设置。--cache-dircache-dir缓存目录的路径。
默认情况下,在 macOS 和 Linux 上为
$XDG_CACHE_HOME/uv或$HOME/.cache/uv,在 Windows 上为%LOCALAPPDATA%\uv\cache。要查看缓存目录的位置,请运行
uv cache dir。也可以通过
UV_CACHE_DIR环境变量设置。--colorcolor-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-fileconfig-file用于配置的
uv.toml文件路径。虽然 uv 配置可以包含在
pyproject.toml文件中,但在此上下文中不允许。也可以通过
UV_CONFIG_FILE环境变量设置。--config-setting,--config-settings,-Cconfig-setting传递给 PEP 517 构建后端的设置,指定为
KEY=VALUE对--config-settings-package,--config-settings-packageconfig-settings-package传递给特定包的 PEP 517 构建后端的设置,指定为
PACKAGE:KEY=VALUE对--default-indexdefault-index默认包索引的 URL(默认值:https://pypi.org/simple)。
接受符合 PEP 503(简单仓库 API)的仓库,或按相同格式组织的本地目录。
此标志指定的索引优先级低于通过
--index标志指定的所有其他索引。也可以通过
UV_DEFAULT_INDEX环境变量设置。--directorydirectory在运行命令之前切换到指定目录。
相对路径以给定目录为基础进行解析。
请参阅
--project仅更改项目根目录。也可以通过
UV_WORKING_DIR环境变量设置。--exclude-newerexclude-newer将候选包限制为在指定日期之前上传的包。
日期与每个单独分发包构件的上传时间进行比较(即每个文件上传到包索引的时间),而不是包版本的发布日期。
接受 RFC 3339 时间戳(例如
2006-12-02T02:07:43Z)、基于系统配置时区解析的相同格式的本地日期(例如2006-12-02)、"友好"时长(例如24 hours、1 week、30 days)或 ISO 8601 时长(例如PT24H、P7D、P30D)。时长不考虑本地时区的语义,始终解析为固定秒数,假设一天为 24 小时(例如,忽略夏令时转换)。不允许使用日历单位(如月和年)。
也可以通过
UV_EXCLUDE_NEWER环境变量设置。--exclude-newer-packageexclude-newer-package将特定包的候选包限制为在指定日期之前上传的包。
接受格式为
PACKAGE=DATE的包-日期对,其中DATE为 RFC 3339 时间戳(例如2006-12-02T02:07:43Z)、基于系统配置时区解析的相同格式的本地日期(例如2006-12-02)、"友好"时长(例如24 hours、1 week、30 days)或 ISO 8601 时长(例如PT24H、P7D、P30D)。时长不考虑本地时区的语义,始终解析为固定秒数,假设一天为 24 小时(例如,忽略夏令时转换)。不允许使用日历单位(如月和年)。
可以为不同的包多次提供。
--extraextra包含来自指定 extra 名称的可选依赖项。
可以多次提供。
当指定的多个 extras 或组出现在
tool.uv.conflicts中时,uv 将报告错误。请注意,所有可选依赖项始终包含在解析过程中;此选项仅影响要安装的包的选择。
--extra-index-urlextra-index-url(已弃用:请改用
--index)除--index-url之外要使用的额外包索引 URL。接受符合 PEP 503(简单仓库 API)的仓库,或按相同格式组织的本地目录。
通过此标志提供的所有索引优先级高于
--index-url指定的索引(默认值为 PyPI)。当提供多个--extra-index-url标志时,较早的值优先级更高。也可以通过
UV_EXTRA_INDEX_URL环境变量设置。--find-links,-ffind-links除注册表索引中找到的分发包外,还要搜索候选分发包的位置。
如果是路径,目标必须是一个目录,其中包含顶层 wheel 文件(
.whl)或源码分发包(例如.tar.gz或.zip)。如果是 URL,页面必须包含指向符合上述格式的包文件的扁平链接列表。
也可以通过
UV_FIND_LINKS环境变量设置。--fork-strategyfork-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包含尚未包含在锁文件中的依赖项更改,这些更改将不会出现在环境中。--groupgroup包含来自指定依赖组的依赖项。
当指定的多个 extras 或组出现在
tool.uv.conflicts中时,uv 将报告错误。可以多次提供。
--help,-h显示此命令的简明帮助
--indexindex在解析依赖项时除默认索引外还要使用的 URL。
接受符合 PEP 503(简单仓库 API)的仓库,或按相同格式组织的本地目录。
通过此标志提供的所有索引优先级高于
--default-index指定的索引(默认值为 PyPI)。当提供多个--index标志时,较早的值优先级更高。不支持索引名称作为值。相对路径必须通过
./或../(在 Unix 上)或.\\、..\\、./或../(在 Windows 上)来消除与索引名称的歧义。也可以通过
UV_INDEX环境变量设置。--index-strategyindex-strategy在针对多个索引 URL 解析时使用的策略。
默认情况下,uv 会在找到给定包的第一个索引处停止,并将解析限制为该第一个索引上存在的版本(
first-index)。这可以防止"依赖混淆"(dependency confusion)攻击,即攻击者可以将同名的恶意包上传到备用索引。也可以通过
UV_INDEX_STRATEGY环境变量设置。可能的值:
first-index:仅使用第一个返回给定包名称匹配项的索引的结果unsafe-first-match:在所有索引中搜索每个包名称,先用完第一个索引的版本,再转到下一个索引unsafe-best-match:在所有索引中搜索每个包名称,优先选择找到的"最佳"版本。如果某个包版本存在于多个索引中,仅查看第一个索引的条目
--index-url,-iindex-url(已弃用:请改用
--default-index)Python 包索引的 URL(默认值:https://pypi.org/simple)。接受符合 PEP 503(简单仓库 API)的仓库,或按相同格式组织的本地目录。
此标志指定的索引优先级低于通过
--extra-index-url标志指定的所有其他索引。也可以通过
UV_INDEX_URL环境变量设置。--isolated运行检查而不更改项目状态 [env: UV_ISOLATED=]
使用临时虚拟环境,保持现有环境和项目锁文件不变。声明的项目需求将被解析并安装到临时环境中。
--keyring-providerkeyring-provider尝试使用
keyring进行索引 URL 的身份验证。目前仅支持
--keyring-provider subprocess,它将 uv 配置为使用keyringCLI 处理身份验证。默认值为
disabled。也可以通过
UV_KEYRING_PROVIDER环境变量设置。可能的值:
disabled:不使用 keyring 进行凭据查找subprocess:使用keyring命令进行凭据查找
--link-modelink-mode从全局缓存安装包时使用的方法。
默认情况下,在 macOS 和 Linux 上为
clone(也称为写时复制,Copy-on-Write),在 Windows 上为hardlink(硬链接)。警告:不鼓励使用 symlink(符号链接)链接模式,因为它会在缓存和目标环境之间创建紧密耦合。例如,清除缓存(
uv cache clean)将通过移除底层源文件来破坏所有已安装的包。请谨慎使用符号链接。也可以通过
UV_LINK_MODE环境变量设置。可能的值:
clone:将包从源克隆(即写时复制)到目标copy:将包从源复制到目标hardlink:将包从源硬链接到目标symlink:将包从源符号链接到目标
--locked断言
uv.lock将保持不变 [env: UV_LOCKED=]要求锁文件是最新的。如果锁文件缺失或需要更新,uv 将退出并报错。
--managed-python要求使用 uv 管理的 Python 版本 [env: UV_MANAGED_PYTHON=]
默认情况下,uv 偏好使用它管理的 Python 版本。但是,如果未安装 uv 管理的 Python,它将使用系统 Python 版本。此选项禁用系统 Python 版本的使用。
--no-binary不安装预构建的 wheel。
给定的包将从源码构建并安装。解析器仍将使用预构建的 wheel 来提取包元数据(如果可用)。
也可以通过
UV_NO_BINARY环境变量设置。--no-binary-packageno-binary-package不为特定包安装预构建的 wheel [env:
UV_NO_BINARY_PACKAGE=]--no-build不构建源码分发包。
启用后,解析将不会运行任意 Python 代码。已构建的源码分发包的缓存 wheel 将被重用,但需要构建分发包的操作将退出并报错。
也可以通过
UV_NO_BUILD环境变量设置。--no-build-isolation在构建源码分发包时禁用隔离。
假设 PEP 518 指定的构建依赖项已经安装。
也可以通过
UV_NO_BUILD_ISOLATION环境变量设置。--no-build-isolation-packageno-build-isolation-package在构建特定包的源码分发包时禁用隔离。
假设该包由 PEP 518 指定的构建依赖项已经安装。
--no-build-packageno-build-package不为特定包构建源码分发包 [env:
UV_NO_BUILD_PACKAGE=]--no-cache,--no-cache-dir,-n避免读取或写入缓存,而是在操作期间使用临时目录
也可以通过
UV_NO_CACHE环境变量设置。--no-config避免发现配置文件(
pyproject.toml、uv.toml)。通常,配置文件会在当前目录、父目录或用户配置目录中发现。
也可以通过
UV_NO_CONFIG环境变量设置。--no-default-groups忽略默认依赖组。
--no-dev忽略开发依赖组。
项目及其依赖项将被省略。
此选项是
--only-group dev的别名。隐含--no-default-groups。--only-grouponly-group仅包含来自指定依赖组的依赖项。
项目及其依赖项将被省略。
可以多次提供。隐含
--no-default-groups。--prereleaseprerelease考虑预发布版本时使用的策略。
默认情况下,uv 将接受仅发布预发布版本的包的预发布版本,以及声明版本说明符中包含显式预发布标记的第一方依赖项(
if-necessary-or-explicit)。也可以通过
UV_PRERELEASE环境变量设置。可能的值:
disallow:禁止所有预发布版本allow:允许所有预发布版本if-necessary:如果包的所有版本都是预发布版本,则允许预发布版本explicit:允许版本要求中带有显式预发布标记的第一方包的预发布版本if-necessary-or-explicit:如果包的所有版本都是预发布版本,或者包的版本要求中带有显式预发布标记,则允许预发布版本
--projectproject在给定目录中发现项目。
所有
pyproject.toml、uv.toml和.python-version文件将通过从项目根目录向上遍历目录树来发现,项目的虚拟环境(.venv)也是如此。其他命令行参数(如相对路径)将相对于当前工作目录进行解析。
请参阅
--directory以完全更改工作目录。此设置在
uv pip接口中使用时无效。也可以通过
UV_PROJECT环境变量设置。--python,-ppython用于项目环境的 Python 解释器。
默认情况下,使用满足项目
requires-python约束的第一个解释器。有关 Python 发现和请求的更多详细信息,请参见
uv python。也可以通过
UV_PYTHON环境变量设置。--quiet,-q使用静默输出。
重复此选项,例如
-qq,将启用静默模式,在此模式下 uv 不会向 stdout 写入任何输出。--refresh刷新所有缓存数据
--refresh-packagerefresh-package刷新特定包的缓存数据
--reinstall,--force-reinstall重新安装所有包,无论它们是否已安装。隐含
--refresh--reinstall-packagereinstall-package重新安装特定包,无论它是否已安装。隐含
--refresh-package--resolutionresolution在给定包需求的不同兼容版本之间进行选择时使用的策略。
默认情况下,uv 将使用每个包的最新兼容版本(
highest)。也可以通过
UV_RESOLUTION环境变量设置。可能的值:
highest:解析每个包的最高兼容版本lowest:解析每个包的最低兼容版本lowest-direct:解析所有直接依赖项的最低兼容版本,以及所有传递依赖项的最高兼容版本
--scriptscript对指定的 PEP 723 Python 脚本运行检查,而不是对当前项目运行检查。
如果提供,uv 将根据脚本的内联元数据表使用依赖项,遵循 PEP 723。
--system-certs是否从平台的原生证书存储加载 TLS 证书 [env: UV_SYSTEM_CERTS=]
默认情况下,uv 使用捆绑的 Mozilla 根证书,这提高了可移植性和性能(尤其是在 macOS 上)。
但是,在某些情况下,您可能希望使用平台的原生证书存储,特别是当您依赖包含在系统证书存储中的企业信任根(例如,用于强制代理)时。
--ty-versionty-version用于类型检查的 ty 版本。
接受版本号(例如
0.0.1),将被视为精确固定版本;版本说明符(例如>=0.0.1);或latest以使用最新可用版本。默认情况下,将使用 ty 的约束版本范围(例如
>=0.0,<0.1)。--upgrade,-U允许包升级,忽略任何现有输出文件中的固定版本。隐含
--refresh--upgrade-groupupgrade-group允许依赖组中所有包的升级,忽略任何现有输出文件中的固定版本
--upgrade-package,-Pupgrade-package允许特定包的升级,忽略任何现有输出文件中的固定版本。隐含
--refresh-package--verbose,-v使用详细输出。
您可以使用
RUST_LOG环境变量配置细粒度日志记录。(https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html#directives)