uv完全支持自定义镜像源,优先级顺序为:命令行--default-index > 环境变量UV_DEFAULT_INDEX > uv.toml > pyproject.toml中default=true的[[tool.uv.index]] > 默认PyPI。

uv 完全支持自定义包镜像源,而且方式比 pip 更灵活、优先级更明确。它不读取 pip 的配置(比如 pip.conf 或 --index-url 参数),必须通过它自己的机制配置。
UV_DEFAULT_INDEX 环境变量设置(全局生效)
这是最常用也最推荐的方式,一次配置,所有项目、所有终端都生效。
- Linux/macOS:在 ~/.bashrc 或 ~/.zshrc 末尾添加
export UV_DEFAULT_INDEX="https://pypi.tuna.tsinghua.edu.cn/simple"
- Windows PowerShell(永久):
$env:UV_DEFAULT_INDEX="https://pypi.tuna.tsinghua.edu.cn/simple"
需配合系统环境变量写入(如用 setx 或图形界面),否则重启后失效
- 注意:UV_DEFAULT_INDEX 会完全替换默认 PyPI 源,不是“额外加一个”——它等价于把 PyPI 换成你指定的地址
pyproject.toml 中 [[tool.uv.index]] 配置(项目级)
适合需要为不同项目绑定不同源(比如内部私有源 + 公共镜像)的场景。
- 在项目根目录的 pyproject.toml 中添加:
[[tool.uv.index]] url = "https://mirrors.aliyun.com/pypi/simple/" default = true
- 多个 [[tool.uv.index]] 块按顺序查找,首个命中包的仓库即被采用
- 若没设 default = true,PyPI 仍为兜底源;设了则彻底替代
- 不要和 [tool.uv] 平级写 index-url,那是旧版或误配,uv 会忽略
命令行临时指定 --default-index(单次覆盖)
调试或验证镜像源时最直接的方式。
- 示例:uv add requests --default-index https://pypi.tuna.tsinghua.edu.cn/simple
- 该参数优先级最高,会覆盖环境变量和配置文件
- 常见错误:写成 --index-url(uv 不识别这个参数名),必须用 --default-index
- 不能用于 uv python install,它只影响包安装类命令(add、sync、install)
uv.toml 用户级配置(跨项目统一但非全局)
比环境变量稍弱一档,但比项目配置强,适合个人开发机统一管理。
- Windows 路径:%APPDATA%\uv\uv.toml(如 C:\Users\name\AppData\Roaming\uv\uv.toml)
- Linux/macOS 路径:$HOME/.config/uv/uv.toml
- 内容示例:
[pip] index-url = "https://pypi.tuna.tsinghua.edu.cn/simple/"
- 注意:uv 会读这个文件,但只认 [pip] 表头下的 index-url,不支持 [tool.uv] 风格
真正容易被忽略的是:多个配置共存时的优先级顺序。命令行 > 环境变量 > uv.toml > pyproject.toml 中的 default = true 项 > 默认 PyPI。如果你改了 pyproject.toml 却没生效,先检查是否被环境变量或当前命令行参数盖掉了。
Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!











