UV-配置国内镜像源
1 uv Tool 与 uv Python 解释器:区别?
很多初学者会被“uv”搞晕,这里需要分清两个概念:
- - uv工具 (uv tool):是用Rust写的包管理器和项目工作流工具。它用来创建虚拟环境、安装依赖(代替pip)。
- - uv Python解释器 (uvpython):这是uv工具的一个实验性功能,它允许你直接管理独立的Python解释器本身(类似pyenv)。你可以用
uv python install 3.11来安装特定版本的Python。
简单来说:uv tool管包,uvpython管Python本身。对于大多数项目,用好uv工具就足够了。只有当你的系统缺少特定Python版本,或需要多个版本并存时,才需要考虑uvpython。
安装Python解释器示例:
# 使用uv工具安装Python 3.11解释器
uv python install 3.11
# 使用该解释器创建一个虚拟环境
uv venv --python 3.11 .venv
2 国内镜像:让uv下载速度飞起来
由于默认源在国外,uv sync或uv python install可能非常慢甚至失败。解决方案是配置国内镜像源。
方法一:通过环境变量设置(推荐,全局生效)
在终端中执行(Linux/macOS):
export UV_DEFAULT_INDEX="https://pypi.tuna.tsinghua.edu.cn/simple"
在Windows PowerShell中:
$env:UV_DEFAULT_INDEX="https://pypi.tuna.tsinghua.edu.cn/simple"
为了让配置永久生效,可以把以上命令添加到你的shell配置文件(如~/.bashrc, ~/.zshrc 或 Windows 的系统环境变量)中。
方法二:在项目级配置(更灵活)
uv会读取项目目录下的pyproject.toml中的配置。你可以添加:
# 在 pyproject.toml 中添加
[[tool.uv.index]]
url="https://pypi.tuna.tsinghua.edu.cn/simple"
default=true
这样,该项目在执行uv sync时会自动使用国内源。
常用国内镜像源列表:
- - 清华大学:https://pypi.tuna.tsinghua.edu.cn/simple
- - 阿里云:https://mirrors.aliyun.com/pypi/simple/
- - 豆瓣:https://pypi.douban.com/simple/
- - 华为云:https://mirrors.huaweicloud.com/repository/pypi/simple
3 离线安装指南:没有网络也能搞定环境
在内网、服务器无外网或网络不稳定时,离线安装是必备技能。核心思路是:在能联网的机器上预先下载好所有依赖,然后拷贝到目标机器安装。
步骤1:在联网机器上准备离线包
# 1. 在联网机器上,进入你的项目目录
cd your_project
# 2. 使用 uv 将依赖包下载到本地目录(例如 ./offline_packages)
uv pip download -d ./offline_packages -r pyproject.toml
# 或者,如果你有 uv.lock 文件,可以指定它以确保版本一致
uv pip download -d ./offline_packages --no-deps -r uv.lock
这会将所有依赖的.whl或.tar.gz文件下载到./offline_packages文件夹。
步骤2:将文件夹拷贝到离线机器
使用U盘、内网传输工具将整个offline_packages目录和项目的pyproject.toml、uv.lock文件复制到目标机器。
步骤3:在离线机器上安装
# 在离线机器的项目目录下,从本地目录安装依赖
uv pip install --no-index --find-links ./offline_packages -r pyproject.toml
--no-index告诉uv不要从网络索引查找,--find-links指定从本地目录查找包。
4 常见问题排雷:代理、权限、兼容性
以下是使用uv时可能遇到的其他坑及其解决方案:
- 1.代理设置问题
如果你在公司网络使用代理,需要配置uv使用代理。通过环境变量设置:
export ALL_PROXY=http://your-proxy-server:port
# 或针对http/https分别设置
export HTTP_PROXY=http://your-proxy-server:port
export HTTPS_PROXY=http://your-proxy-server:port
Windows下同样在PowerShell中设置
$env:HTTP_PROXY=...
- 2.权限错误(Permission Denied)
在Linux/macOS上,如果你尝试将包安装到系统目录(如
/usr/local
)可能会遇到。建议:
- 始终在项目目录内使用uv(它会创建
.venv
虚拟环境)。
- 如果必须全局安装某个工具(如
black
),使用
uvx
(uv提供的全局脚本运行器):
uvx black
它会临时创建隔离环境运行命令,不影响系统。
-
3. 与现有pip/virtualenv的兼容性
uv可以和其他工具共存。关键点是:不要混用。如果你用uv init创建了项目,就坚持用uv add/sync/run管理。不要再用pip install,否则锁文件(uv.lock)会失效,导致依赖不一致。 -
4. 缓存清理
uv会缓存下载的包和解释器,节省时间。但如果缓存损坏或想强制重新下载,可以清理缓存:
uv cache clean
查看缓存目录:
uv cache dir
5 完整配置代码与命令参考
这里提供一个完整的“开箱即用”配置示例,假设你在国内网络环境下开始一个新项目:
# 1. 安装uv(如果还没安装)
# 使用国内镜像加速下载安装脚本(针对Linux/macOS)
curl -LsSf https://astral.sh/uv/install.sh | sh
# 2. 配置环境变量(永久生效,加到 ~/.bashrc 或 ~/.zshrc)
echo 'export UV_DEFAULT_INDEX="https://pypi.tuna.tsinghua.edu.cn/simple"'>> ~/.bashrc
source ~/.bashrc
# 3. 创建新项目并进入
uv init myproject
cd myproject
# 4. 添加依赖(会从清华源快速下载)
uv add fastapi uvicorn[standard]
# 5. 同步虚拟环境
uv sync
# 6. 运行应用
uv run uvicorn main:app --reload
常用问题排查命令:
- -
uv --version:检查uv版本。 - -
uv config list:查看当前生效的配置。 - -
uv tool --help:获取子命令帮助。 - - 检查网络:
curl -v https://pypi.tuna.tsinghua.edu.cn/simple
记住,正确配置镜像源是顺畅使用uv的第一步。遇到问题先检查网络和配置,大部分都能迎刃而解。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐



所有评论(0)