UV:极速Python包管理器安装配置教程
UV是由Astral公司开发的现代Python包管理器,使用Rust编写,速度比pip快10-100倍。它可以替代pip、pip-tools、pipx、poetry、pyenv等多个工具,提供统一的Python项目管理体验。
为什么选择UV?
- 极速性能:比pip快10-100倍,依赖解析和安装速度显著提升
- 统一工具:集成包管理、虚拟环境、Python版本管理于一体
- 现代设计:基于现代Python标准(pyproject.toml),支持PEP 621
- 兼容性强:完全兼容pip和PyPI生态系统
- 内存安全:Rust编写,避免内存安全问题
1. Windows环境下安装UV
方法一:PowerShell安装(推荐)
打开PowerShell,执行以下命令:
1
| powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
|
方法二:使用winget安装
如果系统已安装winget:
1
| winget install --id=astral-sh.uv -e
|
方法三:手动下载安装
- 访问UV官方Release页面
- 下载适合Windows的最新版本
- 解压到指定目录(如
C:\Tools\uv)
- 手动添加到PATH环境变量
2. 配置Windows环境变量
自动配置检查
安装完成后,UV通常会自动配置环境变量。重新打开命令提示符,验证安装:
您也可以查看UV的完整帮助信息,了解所有可用命令:

手动配置环境变量
如果自动配置失败,需要手动设置:
- 右键点击”此电脑”,选择”属性”
- 点击”高级系统设置”
- 在”系统属性”窗口中点击”环境变量”按钮
- 在”用户变量”中找到或创建
Path变量
- 添加UV的安装路径到
Path中
常见UV安装路径:
- PowerShell安装:
%USERPROFILE%\.local\bin
- winget安装:
%LOCALAPPDATA%\Microsoft\WinGet\Packages\astral-sh.uv_Microsoft.Winget.Source_8wekyb3d8bbwe
UV专用环境变量配置
为了更好地管理UV和优化使用体验,建议配置以下6个环境变量:
| 环境变量 |
说明 |
推荐配置值 |
UV_CACHE_DIR |
UV缓存目录 |
E:\Work\uv\cache |
UV_DEFAULT_INDEX |
默认包索引源 |
https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple |
UV_PYTHON_BIN_DIR |
Python可执行文件目录 |
E:\Work\uv\pythonbin |
UV_PYTHON_INSTALL_DIR |
Python安装目录 |
E:\Work\uv\python |
UV_TOOL_BIN_DIR |
工具二进制文件目录 |
E:\Work\uv\toolbin |
UV_TOOL_DIR |
工具安装目录 |
E:\Work\uv\tool |
配置说明:
- UV_CACHE_DIR:设置UV的缓存目录,避免占用系统盘空间
- UV_DEFAULT_INDEX:使用清华镜像源,提高国内下载速度
- UV_PYTHON_BIN_DIR:指定Python可执行文件的存放目录
- UV_PYTHON_INSTALL_DIR:指定Python版本的安装位置
- UV_TOOL_BIN_DIR:设置工具可执行文件的存放目录
- UV_TOOL_DIR:设置工具的安装目录
3. 更新UV
保持UV为最新版本:
4. 基础使用
4.1 创建新项目
1 2 3 4 5 6
| uv init my-project cd my-project
uv init my-project --python 3.12
|
4.2 虚拟环境管理
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| uv venv
uv venv --python 3.12
.venv\Scripts\activate
.venv\Scripts\Activate.ps1
deactivate
|
4.3 运行Python代码
UV可以自动管理虚拟环境并运行代码:
1 2 3 4 5 6 7 8
| uv run main.py
uv run -m pytest
uv run --with requests -- python -c "import requests; print(requests.get('https://httpbin.org/json').json())"
|
5. 包管理
5.1 添加依赖
1 2 3 4 5 6 7 8 9 10 11
| uv add requests
uv add --dev pytest black
uv add "django>=4.0,<5.0"
uv add torch --index-url https://download.pytorch.org/whl/cu118
|
5.2 管理依赖
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| uv sync
uv lock --upgrade
uv remove requests
uv pip list
uv pip show requests
|
5.3 导出requirements.txt
1 2 3 4 5
| uv pip compile pyproject.toml -o requirements.txt
uv export --format requirements-txt --all-extras --dev > requirements.txt
|
6. Python版本管理
6.1 安装Python版本
1 2 3 4 5 6 7 8
| uv python list
uv python install 3.12
uv python install 3.11 3.12 3.13
|

6.2 切换Python版本
1 2 3 4 5
| echo "3.12" > .python-version
uv python pin 3.12
|
7. 工具管理(替代pipx)
7.1 安装全局工具
1 2 3 4 5 6 7 8
| uv tool install black
uv tool install "black==23.0.0"
uv tool install git+https://github.com/psf/black.git
|
7.2 管理工具
1 2 3 4 5 6 7 8 9 10 11
| uv tool list
uv tool upgrade black
uv tool upgrade --all
uv tool uninstall black
|
8. 脚本运行
UV支持直接运行包含依赖信息的Python脚本:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
import requests from bs4 import BeautifulSoup
def main(): response = requests.get("https://httpbin.org/html") soup = BeautifulSoup(response.text, 'html.parser') print(soup.title.string)
if __name__ == "__main__": main()
|
将上述内容保存为script.py,然后运行:
9. 项目配置文件
9.1 pyproject.toml示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| [project] name = "my-project" version = "0.1.0" description = "My awesome project" requires-python = ">=3.12" dependencies = [ "requests>=2.25.0", "click>=8.0.0", ]
[project.optional-dependencies] dev = [ "pytest>=7.0.0", "black>=23.0.0", "ruff>=0.1.0", ]
[tool.uv] dev-dependencies = [ "mypy>=1.0.0", ]
[[tool.uv.index]] name = "pytorch" url = "https://download.pytorch.org/whl/cu118/"
[tool.uv.workspace] members = ["packages/*"]
|
10. 常用命令速查表
| 命令 |
功能 |
示例 |
uv init |
初始化项目 |
uv init my-project |
uv add |
添加依赖 |
uv add requests |
uv remove |
移除依赖 |
uv remove requests |
uv sync |
同步依赖 |
uv sync --dev |
uv run |
运行命令 |
uv run python main.py |
uv venv |
创建虚拟环境 |
uv venv --python 3.12 |
uv python install |
安装Python |
uv python install 3.12 |
uv tool install |
安装工具 |
uv tool install black |
uv lock |
生成锁文件 |
uv lock --upgrade |
uv export |
导出依赖 |
uv export > requirements.txt |
11. 实际使用案例
案例1:快速原型开发
1 2 3 4 5 6 7 8 9 10 11 12 13
| mkdir temp-project && cd temp-project
uv run --with pandas --with matplotlib -- python -c " import pandas as pd import matplotlib.pyplot as plt
data = pd.DataFrame({'x': [1,2,3,4], 'y': [1,4,2,3]}) plt.plot(data['x'], data['y']) plt.savefig('plot.png') print('Plot saved!') "
|
案例2:迁移现有项目
1 2 3 4 5 6
| uv add -r requirements.txt
uv init --lib --name mypackage
|
案例3:多Python版本测试
1 2 3 4 5 6 7 8
| uv python install 3.11 3.12 3.13
for version in 3.11 3.12 3.13; do uv venv "test-$version" --python "$version" uv run --env "test-$version" pytest done
|
12. 故障排除
常见问题及解决方案
问题1:UV命令未找到
1 2 3 4 5 6
| echo $env:PATH echo %PATH%
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
|
问题2:权限问题
问题3:网络连接问题
1 2 3 4 5
| uv --help
uv add requests --index-url https://pypi.tuna.tsinghua.edu.cn/simple/
|
问题4:缓存问题
1 2 3 4 5
| uv cache clean
uv cache dir
|
13. 最佳实践
- 项目结构:使用
uv init创建标准项目结构
- 依赖管理:定期运行
uv lock --upgrade更新锁文件
- 版本固定:在生产环境使用具体版本号
- 环境隔离:每个项目使用独立虚拟环境
- 工具统一:用UV替代pip、pipx、poetry等工具
- 脚本编写:利用内联脚本元数据功能
- CI/CD:在持续集成中使用
uv sync --frozen
通过本教程,您已经掌握了UV的完整使用方法。UV作为新一代Python包管理器,将显著提升您的开发效率和体验!