菜单

项目管理

相关源文件

本文档介绍了 uv 的面向项目的命令和工作区管理功能。uv 中的项目管理包括 Python 项目和工作区的创建、配置、依赖管理和执行。有关工具安装和执行的信息,请参阅工具管理。有关 Python 版本发现和安装的详细信息,请参阅Python 管理

核心概念

项目和工作区

uv 区分单个项目和可以包含多个相关项目的工作区。项目由 pyproject.toml 文件定义,而工作区是协同管理的多个项目集合。

来源: crates/uv-workspace/src/workspace.rs99-119 crates/uv/src/commands/project/mod.rs1-71

项目生命周期状态

uv 中的项目遵循定义的生命周期,特定命令管理状态之间的转换

来源: crates/uv/src/commands/project/init.rs39-186 crates/uv/src/commands/project/add.rs63-581 crates/uv/src/commands/project/lock.rs77-236

命令架构

项目命令分派

项目管理系统围绕一个中心模块构建,该模块分派到特定的命令实现

来源: crates/uv/src/commands/project/mod.rs59-70 crates/uv/src/commands/project/mod.rs382-423

目标类型和环境管理

项目命令在不同的目标类型上运行,这些目标类型决定了操作的作用域和执行方式

来源: crates/uv/src/commands/project/add.rs626-692 crates/uv/src/commands/project/mod.rs1200-1350

项目初始化

项目类型和模板

uv 的 uv init 命令通过 InitKindInitProjectKind 枚举支持不同的项目模板

来源: crates/uv/src/commands/project/init.rs272-297 crates/uv-configuration/src/project_build_backend.rs1-39

工作区发现与创建

项目初始化包括工作区发现逻辑,该逻辑决定是创建独立项目还是集成到现有工作区

来源: crates/uv/src/commands/project/init.rs298-343 crates/uv-workspace/src/workspace.rs143-236

依赖管理

添加/移除工作流

依赖项修改命令遵循验证、修改和同步的一致模式

来源: crates/uv/src/commands/project/add.rs547-581 crates/uv/src/commands/project/remove.rs42-371

依赖项类型和来源

uv 支持不同的依赖项类型和来源规范

来源: crates/uv/src/commands/project/add.rs626-747 crates/uv-workspace/src/pyproject.rs1-50

锁文件管理

锁定操作流程

锁定系统使用不同的模式来处理各种场景

来源: crates/uv/src/commands/project/lock.rs238-248 crates/uv/src/commands/project/lock.rs302-384

锁定验证和首选项

锁定验证系统确定何时可以重用现有的锁定文件

来源: crates/uv/src/commands/project/lock.rs679-760 crates/uv/src/commands/project/lock.rs1150-1350

环境同步

同步目标解析

同步操作根据项目配置和命令参数确定要安装的内容

来源: crates/uv/src/commands/project/sync.rs493-541 crates/uv/src/commands/project/install_target.rs1-50

环境状态管理

项目环境可以处于影响同步行为的不同状态

来源: crates/uv/src/commands/project/sync.rs131-268 crates/uv/src/commands/project/mod.rs1200-1300

脚本执行

运行命令上下文解析

uv run 命令通过复杂的环境解析,同时处理项目和脚本执行上下文。

来源: crates/uv/src/commands/project/run.rs65-98 crates/uv/src/commands/project/run.rs458-881

环境分层和要求

运行命令支持在基础环境之上叠加额外的要求。

来源: crates/uv/src/commands/project/run.rs904-961 crates/uv/src/commands/project/environment.rs1-100