菜单

依赖管理

相关源文件

此页面记录了 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

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

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