一、uv 基础介绍与安装
1. uv 是什么
uv 是一个高性能的 Python 虚拟环境和依赖管理工具,由 Astral 公司开发(Ruff 同团队),相比传统的 venv/pipenv/poetry,具有极快的依赖解析速度和简洁的命令行体验,支持虚拟环境创建、依赖安装/更新/卸载、pyproject.toml 管理等核心功能。
2. uv 安装方法
方法1:官方一键安装(推荐,跨平台)
1
| curl -LsSf https://astral.sh/uv/install.sh | sh
|
方法2:pip 安装(需已安装 Python)
方法3:Windows 手动安装(PowerShell)
1
| iwr -useb https://astral.sh/uv/install.ps1 | iex
|
验证安装
1
| uv --version # 输出版本号则安装成功
|
二、uv 核心操作(虚拟环境管理)
1. 虚拟环境创建
基础创建(默认 Python 版本)
1
2
| # 在当前目录创建虚拟环境(默认生成 .venv 文件夹)
uv venv
|
指定 Python 版本创建
1
2
3
4
5
| # 指定版本(如 3.11),uv 会自动下载对应版本(无需提前安装)
uv venv --python 3.11
# 指定虚拟环境存放路径
uv venv ./my-venv # 环境文件存放在 my-venv 文件夹
|
2. 激活虚拟环境
Windows(CMD)
.venv\Scripts\activate.bat
Windows(PowerShell)
1
| .venv\Scripts\Activate.ps1
|
macOS/Linux(bash/zsh)
1
| source .venv/bin/activate
|
验证激活
激活后终端提示符前会出现 (.venv) 标识,执行以下命令确认环境:
1
2
| which python # 输出 .venv/bin/python(macOS/Linux)
where python # 输出 .venv\Scripts\python.exe(Windows)
|
3. 退出虚拟环境
4. 删除虚拟环境
无需 uv 命令,直接删除环境文件夹即可:
1
2
3
4
5
| # macOS/Linux
rm -rf .venv
# Windows
rmdir /s /q .venv
|
三、uv 依赖管理(核心功能)
1. 安装依赖
基础安装(类似 pip install)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| # 安装单个包
uv pip install requests
# 安装指定版本包
uv pip install requests==2.31.0
# 安装多个包
uv pip install requests pandas numpy
# 从 requirements.txt 安装
uv pip install -r requirements.txt
# 安装开发依赖(pyproject.toml 中 [dev-dependencies] 部分)
uv pip install -e .[dev]
|
安装并写入依赖文件
1
2
3
4
5
| # 安装包并写入 pyproject.toml(推荐,标准化管理)
uv add requests # 等价于 pip install + 写入 pyproject.toml
# 安装开发依赖并写入
uv add --dev pytest
|
2. 查看已安装依赖
1
2
3
4
5
6
| # 查看所有已安装包(简洁版)
uv pip list
# 查看详细依赖树
uv pip show requests # 查看单个包的详情(版本、依赖、路径等)
uv pip freeze # 输出 requirements.txt 格式的依赖列表
|
3. 更新依赖
1
2
3
4
5
6
7
8
| # 更新单个包
uv pip install --upgrade requests
# 更新所有包
uv pip install --upgrade all
# 更新 pyproject.toml 中的依赖到最新兼容版本
uv update
|
4. 卸载依赖
1
2
3
4
5
6
7
8
| # 卸载单个包
uv pip uninstall requests
# 卸载多个包
uv pip uninstall pandas numpy
# 从 pyproject.toml 中移除依赖
uv remove requests
|
5. 依赖导出
1
2
3
4
5
6
7
8
| # 导出当前环境依赖到 requirements.txt
uv pip freeze > requirements.txt
# 导出 pyproject.toml 中的依赖到 requirements.txt
uv export > requirements.txt
# 仅导出生产依赖(排除开发依赖)
uv export --without-dev > requirements.txt
|
四、uv 高级用法
1. 使用 uv run 直接运行命令(无需激活环境)
无需手动激活虚拟环境,直接通过 uv 调用环境内的命令:
1
2
3
4
5
| # 运行 Python 脚本(使用 .venv 中的 Python)
uv run python main.py
# 运行第三方工具(如 pytest,无需激活环境)
uv run pytest tests/
|
2. 配置 uv 镜像源(加速国内下载)
临时使用(单次命令)
1
| uv pip install requests --index-url https://pypi.tuna.tsinghua.edu.cn/simple/
|
永久配置(全局生效)
1
2
3
4
5
| # 设置清华镜像源
uv config set install.index-url https://pypi.tuna.tsinghua.edu.cn/simple/
# 查看当前配置
uv config show
|
3. 基于 pyproject.toml 初始化项目
1
2
3
4
5
6
7
8
| # 初始化标准 Python 项目(生成 pyproject.toml)
uv init my-project
# 进入项目目录
cd my-project
# 安装项目依赖(根据 pyproject.toml)
uv install
|
五、常见错误及处理方法
错误1:uv venv --python 3.11 报错:Failed to find Python 3.11
错误原因:本地未安装对应 Python 版本,且 uv 自动下载失败(网络/权限问题)。
处理方法:
- 手动安装对应版本 Python,或换用本地已有的版本:
1
| uv venv --python $(which python3.10) # 使用本地 3.10 版本
|
- 检查网络,确保能访问 uv 的 Python 下载源,或配置代理:
1
2
| export http_proxy=http://your-proxy:port
export https_proxy=http://your-proxy:port
|
错误2:uv pip install 报错:Permission denied
错误原因:无权限写入系统目录(未使用虚拟环境,或虚拟环境路径权限不足)。
处理方法:
- 确保先创建并激活虚拟环境,再安装依赖;
- 若虚拟环境路径权限不足,重新创建环境到有权限的目录:
1
| uv venv ~/my-venv # 放在用户目录下
|
错误3:uv run python main.py 报错:ModuleNotFoundError: No module named ‘requests’
错误原因:依赖未安装到 uv 对应的虚拟环境中。
处理方法:
- 确认依赖已安装:
uv pip list | grep requests; - 若未安装,执行
uv pip install requests 后再运行; - 确认使用
uv run 调用的是虚拟环境内的 Python:uv run which python。
错误4:Windows 执行 uv 命令报错:无法将“uv”识别为内部或外部命令
错误原因:uv 安装路径未加入系统环境变量。
处理方法:
- 找到 uv 的安装路径(通常在
%USERPROFILE%\.cargo\bin); - 将该路径添加到系统环境变量 PATH;
- 重启终端后重新执行
uv --version 验证。
错误5:uv add requests 报错:pyproject.toml not found
错误原因:当前目录未初始化 pyproject.toml,无法写入依赖。
处理方法:
- 先初始化项目:
uv init .(当前目录生成 pyproject.toml); - 再执行
uv add requests。
六、补充说明
- uv 与传统工具对比:
- 速度:uv 解析依赖速度是 pip 的 10-100 倍,适合大型项目;
- 兼容性:完全兼容 pip/requirements.txt/pyproject.toml,可无缝替换;
- 优势:内置虚拟环境管理,无需额外安装 venv/poetry。
- 常用快捷命令:
uv venv:快速创建 .venv 虚拟环境;uv run:免激活运行环境内命令;uv add:安装并写入 pyproject.toml;uv export:导出依赖到 requirements.txt。
- 注意事项:
- 避免在系统 Python 环境中直接使用 uv 安装依赖,始终创建虚拟环境;
- 国内用户建议配置镜像源,提升下载速度;
- pyproject.toml 是现代 Python 项目的标准配置文件,优先使用
uv add 而非 pip install 管理依赖。