在 uv 中配置阿里云源,既可以在 uv.toml(全局/项目级配置)中设置,也可以在 pyproject.toml(项目级配置)中设置,但两者的生效范围和优先级不同,具体区别如下:
1. 全局/项目级配置:uv.toml
uv.toml 是 uv 的专用配置文件,可用于全局生效或仅当前项目生效,是配置源的推荐方式。
-
生效范围 :
- 若放在
~/.config/uv/uv.toml(Linux/macOS)或C:\Users\<用户名>\.config\uv\uv.toml(Windows),则对所有使用 uv 的项目全局生效。 - 若放在某个项目的根目录下(与
pyproject.toml同级),则仅对当前项目生效 ,优先级高于全局uv.toml。
- 若放在
-
配置格式 :
toml[registry] # 直接指定阿里云 PyPI 镜像地址 index = "https://mirrors.aliyun.com/pypi/simple/"
2. 项目级配置:pyproject.toml
pyproject.toml 是 Python 项目的标准配置文件(用于管理项目元信息、依赖等),uv 支持在此文件中通过 [tool.uv.registry] 节点配置源,仅对当前项目生效。
-
生效范围 :仅作用于当前
pyproject.toml所在的项目,不会影响其他项目。 -
配置格式 :
toml# 先确保有 [project] 节点(项目元信息,uv init 会自动生成) [project] name = "你的项目名" version = "0.1.0" dependencies = [] # 项目依赖,可通过 uv add 自动管理 # 添加 uv 源配置 [tool.uv.registry] index = "https://mirrors.aliyun.com/pypi/simple/"
核心区别与选择建议
| 配置文件 | 生效范围 | 优先级 | 适用场景 |
|---|---|---|---|
uv.toml(全局) |
所有项目 | 最低 | 希望所有项目统一用阿里云源 |
uv.toml(项目级) |
当前项目 | 高于全局 | 仅当前项目用阿里云源,其他项目用默认源 |
pyproject.toml |
当前项目 | 最高 | 项目需和团队共享源配置(提交到Git) |
- 若仅个人使用且所有项目需统一源,优先配置全局
uv.toml。 - 若项目需和他人协作(需同步源配置),优先在项目根目录的
pyproject.toml中配置(可随代码提交到版本控制工具)。
要不要我帮你生成一份 pyproject.toml 和项目级 uv.toml 的完整配置模板?直接复制到项目根目录即可使用,无需手动修改复杂节点。