UV_DEFAULT_INDEX环境变量最常用,因其全局生效、优先级最高,覆盖所有uv命令的默认索引,且不污染项目配置;需注意它不影响uv python install,后者需单独配置python-install-mirror。

uv 默认走 pypi.org,不配国内镜像源时下载包极慢甚至超时失败——必须显式配置,且有三种互不干扰的生效层级。
为什么 UV_DEFAULT_INDEX 环境变量最常用
这是全局生效、对所有 uv 命令(uv add、uv sync、uv pip install)都起作用的方式,且优先级高于配置文件。它直接覆盖默认索引,无需修改项目文件。
- Linux/macOS:在
~/.zshrc或~/.bashrc中追加export UV_DEFAULT_INDEX="https://mirrors.aliyun.com/pypi/simple/",然后执行source ~/.zshrc - Windows PowerShell(永久):用管理员权限运行
[System.Environment]::SetEnvironmentVariable('UV_DEFAULT_INDEX', 'https://pypi.tuna.tsinghua.edu.cn/simple', 'Machine'),重启终端生效 - 注意:
UV_DEFAULT_INDEX仅影响包下载源,不影响uv python install下载 Python 解释器——后者走的是 GitHub release 地址,需另配代理或镜像
pyproject.toml 里配 [[tool.uv.index]] 的真实用途
这不是“换源”,而是定义多仓库策略:比如你既有私有包在公司内网,又需要公共包走清华源,这时才需要它。单靠它不能替代 UV_DEFAULT_INDEX。
- 若只写一个带
default = true的镜像,效果等同于UV_DEFAULT_INDEX,但只在当前项目生效 - 示例配置(放在
pyproject.toml底部):[[tool.uv.index]] url = "https://pypi.tuna.tsinghua.edu.cn/simple" default = true
- 错误写法:漏掉
default = true,或写成[[tool.uv.indexes]](键名错,无效)
命令行临时指定镜像的适用场景
适合调试、CI/CD 流水线中临时切换源,或验证某个镜像是否可用。它会覆盖环境变量和配置文件。
- 安装单个包时指定:
uv add requests --default-index https://mirrors.aliyun.com/pypi/simple/ - 同步整个依赖时指定:
uv sync --default-index https://pypi.tuna.tsinghua.edu.cn/simple - 注意:
--index和--default-index不同——前者用于添加额外索引(类似 pip 的--extra-index-url),后者才是替换默认源
最容易被忽略的一点:uv 的 pip 子命令(如 uv pip install)也受 UV_DEFAULT_INDEX 控制,但如果你之前用 pip 配过 pip.conf,uv 并不读取它——uv 完全不兼容 pip 的配置体系,必须单独配。


















