此页面记录了 uv 的依赖管理系统,该系统处理 Python 项目和脚本的依赖添加、删除、解析和安装。该系统支持带有 pyproject.toml 文件的传统 Python 项目以及带有内联元数据的 PEP 723 脚本。
有关项目初始化和工作区管理的信息,请参阅 项目初始化 和 工作区。有关锁文件生成的具体信息,请参阅 锁文件生成。
uv 支持多种依赖类别,由 DependencyType 枚举表示。
来源: crates/uv/src/commands/project/add.rs425-440 crates/uv/src/commands/project/remove.rs124-177
该系统通过 InstallTarget 枚举支持不同的安装目标。
来源: crates/uv/src/commands/project/install_target.rs crates/uv/src/commands/project/sync.rs493-541
uv 处理两种主要的依赖管理目标类型
来源: crates/uv/src/commands/project/add.rs124-193 crates/uv/src/commands/project/mod.rs569-788
uv add 命令遵循此工作流
来源: crates/uv/src/commands/project/add.rs63-581 crates/uv/src/commands/project/add.rs305-422
uv remove 命令遵循此工作流
来源: crates/uv/src/commands/project/remove.rs42-369 crates/uv/src/commands/project/remove.rs124-177
uv sync 命令协调锁文件生成和环境安装。
来源: crates/uv/src/commands/project/sync.rs50-471 crates/uv/src/commands/project/sync.rs572-804
PyProjectTomlMut 类型处理 `pyproject.toml` 文件的内存操作。
来源: crates/uv/src/commands/project/add.rs452-475 crates/uv/src/commands/project/remove.rs114-123
该系统处理不同的需求格式和来源。
来源: crates/uv/src/commands/project/add.rs288-422 crates/uv/src/commands/project/add.rs583-703
LockOperation 协调依赖解析和锁文件管理。
来源: crates/uv/src/commands/project/lock.rs250-385 crates/uv/src/commands/project/lock.rs51-75
do_sync 函数处理最终的安装步骤。
来源: crates/uv/src/commands/project/sync.rs572-804 crates/uv/src/commands/project/sync.rs614-677
uv 为通用和平台特定解析使用不同的状态类型。
来源: crates/uv/src/commands/project/mod.rs382-423 crates/uv/src/commands/project/add.rs302-304