You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用uv安装Python项目的所有开发依赖?

解决uv安装全量依赖(含开发依赖)的问题

一、先搞懂uv sync和uv pip sync的区别

  • uv pip sync:完全贴合pip的工作流,只同步requirements.txt这类锁文件里的依赖,不会读取pyproject.toml中的开发依赖配置。
  • uv sync:uv原生的同步命令,直接读取pyproject.toml的主依赖和开发依赖,还会自动以可编辑模式安装你的本地项目包,但对项目目录结构有要求,这也是你报错的原因。

二、安装所有依赖的两种方案

方案1:用uv pip直接安装(无需调整目录结构)

如果不想折腾项目结构,激活虚拟环境后,直接执行以下命令安装主依赖+开发依赖:

# 激活虚拟环境(Linux/macOS)
source .venv/bin/activate
# Windows系统用:.venv\Scripts\activate

# 安装主依赖和开发依赖
uv pip install -e .[dev]

注意:要让.[dev]生效,需要先在pyproject.toml中把开发依赖移到PEP标准的optional-dependencies字段下(和tool.uv.dev-dependencies可以共存):

[project]
name = "my-project"
dependencies = [
  "django",
]
# 添加这部分
optional-dependencies = {
  dev = [
    "factory-boy",
  ]
}

[tool.uv]
dev-dependencies = [
  "factory-boy",
]

[tool.uv.pip]
python-version = "3.10"

方案2:修复目录结构后用uv sync(更符合uv原生工作流)

你遇到的报错是因为uv在根目录发现了多个顶级Python包目录(conf、hines等),它默认认为根目录应该只有一个项目包。解决方法二选一:

方法A:调整项目目录结构

把所有Python代码放到一个和项目同名的子目录下,根目录只放配置文件和非代码目录:

my-project/
├── my-project/          # 项目主包目录
│   ├── __init__.py
│   ├── conf/
│   ├── hines/
│   └── ...
├── docker/              # 非代码目录保留在根目录
├── assets/
├── node_modules/
├── pyproject.toml
└── .venv/

方法B:在pyproject.toml中明确指定项目包

如果不想移动目录,直接在project字段里声明你的所有Python包:

[project]
name = "my-project"
dependencies = [
  "django",
]
# 添加这行,列出所有顶级Python包
packages = [{"include" = "conf"}, {"include" = "hines"}]

[tool.uv]
dev-dependencies = [
  "factory-boy",
]

[tool.uv.pip]
python-version = "3.10"

修复后,执行以下命令安装所有依赖(包括开发依赖):

uv sync --dev

内容的提问来源于stack exchange,提问作者Phil Gyford

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 07:22:44