Python 包管理工具推荐:uv
目录
- 简介
- 安装 uv
- Python 版本管理
- 项目环境管理
- 依赖管理
- 运行代码
- 常用工作流
- 在 WSL 中使用 uv
- 常用命令速查
- 项目结构
- Git 版本控制
- 最佳实践
- 迁移指南
- 故障排查
- 总结
- 参考资源
简介
uv 是由 Astral 开发的超快速 Python 包管理器和项目管理工具,使用 Rust 编写,速度比 pip 快 10-100 倍。它不仅可以管理包依赖,还能管理多个 Python 版本和虚拟环境。
核心特性
- 极速安装:Rust 编写,包安装速度极快
- 多版本管理:轻松管理和切换不同 Python 版本
- 统一工具:集成包管理、环境管理、版本管理于一体
- 跨平台支持:完美支持 Linux、macOS、Windows 和 WSL
安装 uv
Linux / macOS / WSL
# 推荐方式
curl -LsSf [https://astral.sh/uv/install.sh](https://astral.sh/uv/install.sh) | sh
# 或通过 pip
pip install uv
Windows
powershell -c "irm [https://astral.sh/uv/install.ps1](https://astral.sh/uv/install.ps1) | iex"
Python 版本管理
安装和管理 Python 版本
# 安装特定版本
uv python install 3.11
uv python install 3.12
uv python install 3.13
# 查看已安装版本
uv python list
# 查看可用版本
uv python list --all-versions
# 设置项目默认版本
uv python pin 3.12
项目环境管理
为新项目创建环境
# 创建新项目
uv init myproject --python 3.11
cd myproject
# 创建虚拟环境
uv venv
# 添加依赖
uv add requests pandas numpy
为已有代码创建环境
# 在现有项目目录下
cd your_existing_project
# 初始化 uv 项目(不会覆盖已有文件)
uv init
# 创建虚拟环境
uv venv
# 添加已知的依赖
uv add openai pandas numpy
依赖管理
添加依赖
# 添加运行时依赖
uv add package-name
# 添加指定版本
uv add "openai==1.12.0"
uv add "pandas>=2.0.0"
# 添加开发依赖
uv add --dev pytest black ruff
# 添加可选依赖组
uv add --optional docs sphinx
更新依赖
由于 uv 使用 uv.lock 文件,直接运行 uv sync 不会更新已锁定的版本。如需更新,请使用以下命令:
1. 更新特定包
将某个包更新到 pyproject.toml 允许的最高版本:
uv lock --upgrade-package <package_name>
# 或者更新并同步环境
uv sync --upgrade-package <package_name>
2. 全量更新
更新所有依赖到最新兼容版本并同步环境:
uv sync --upgrade
3. 更改版本限制
如果你需要升级到一个超出当前 pyproject.toml 限制的版本(例如从 v1 升级到 v2):
uv add "package_name>=2.0.0"
从已有依赖文件迁移
从 requirements.txt 导入
# 方法 1:一次性导入到 pyproject.toml
cat requirements.txt | grep -v "^#" | grep -v "^$" | xargs uv add
# 方法 2:只安装到环境(不修改 pyproject.toml)
uv pip install -r requirements.txt
使用已有 pyproject.toml
# 自动读取并同步依赖
uv sync
运行代码
使用 uv run(推荐)
# 运行 Python 脚本
uv run python script.py
# 运行模块
uv run python -m pytest
传统方式(激活环境)
# 激活虚拟环境
source .venv/bin/activate # Linux/macOS
.venv\Scripts\activate # Windows
常用工作流
场景 1:开始新项目
uv init my-app --python 3.12
cd my-app
uv add fastapi uvicorn
uv run python main.py
在 WSL 中使用 uv
uv 在 WSL 环境中表现优异,与原生 Linux 体验一致。
常用命令速查
项目管理
| 命令 | 说明 |
|---|---|
uv init |
初始化项目 |
uv sync |
根据 lock 文件同步环境 |
uv run <cmd> |
在虚拟环境中运行命令 |
uv self update |
更新 uv 工具自身 |
依赖管理
| 命令 | 说明 |
|---|---|
uv add <pkg> |
添加依赖 |
uv remove <pkg> |
移除依赖 |
uv sync --upgrade |
全量更新所有依赖 |
uv sync --upgrade-package <pkg> |
更新指定依赖 |
uv pip list |
查看已安装包 |
Python 版本
| 命令 | 说明 |
|---|---|
uv python install <ver> |
安装指定 Python |
uv python pin <ver> |
固定当前项目 Python 版本 |
项目结构
my-project/
├── .venv/ # 虚拟环境
├── pyproject.toml # 依赖声明
├── uv.lock # 版本锁定文件
└── src/ # 源码
Git 版本控制
应该提交的文件
✅ pyproject.toml, uv.lock, .python-version
应该忽略的文件
❌ .venv/, __pycache__/, .ruff_cache/
为什么要提交 uv.lock?
- 环境一致性:确保全团队使用完全相同的版本。
- 可重现性:CI/CD 环境与开发环境 100% 一致。
最佳实践
- **始终使用
uv run**。 - **提交
uv.lock**。 - 定期维护:使用
uv sync --upgrade保持依赖安全且最新。
迁移指南
从 pip 迁移:cat requirements.txt | xargs uv add。
故障排查
- 安装失败:尝试
uv cache clean后重新uv sync。 - 版本冲突:检查
pyproject.toml中的版本限制是否过于严格。
总结
uv 是目前最快、最现代化的 Python 项目管理工具,强烈建议在生产环境和个人项目中使用。

浙公网安备 33010602011771号