uv完全指南:下一代Python包管理器

目录
Python诞生于1991年,经过30多年发展,已经成为:
- AI领域首选语言
- 数据科学事实标准
- Web开发重要生态
- 自动化脚本核心语言
但Python工程化一直存在一个问题:
代码开发体验优秀,但项目管理体验长期落后。
特别是在依赖管理方面。
为什么需要uv?
Python 生态发展多年,已经形成了一套成熟的开发流程:
- pip:安装 Python 包
- venv:创建虚拟环境
- pip-tools:管理依赖版本
- poetry:项目管理与打包
- conda:科学计算环境管理
但是在实际项目中,经常会遇到一些问题:
安装速度慢
传统的pip install numpy安装时需要:解析依赖、下载包、安装包、写入环境。当项目依赖比较多时,速度会明显下降。
虚拟环境管理繁琐
通常流程:
|
|
步骤较多。
Python版本管理困难
例如项目A使用Python 3.10、FastAPI 0.100,项目B使用Python 3.12、Django 5,需要额外管理Python版本。
为了解决这些问题,Astral推出了:
uv——一个极快的Python包管理器和项目管理工具。
它使用Rust编写,目标是成为Python世界中的:
- npm
- cargo
- go modules
安装uv
macOS/Linux
推荐:
|
|
安装完成:
|
|
Windows
PowerShell:
|
|
验证:
|
|
uv管理Python版本
uv不仅管理包,也可以管理Python。查看可用版本:
|
|

安装Python:
|
|
指定Python:
|
|
生成.python-version,内容3.12,之后项目默认使用Python 3.12。
创建Python项目
|
|
生成:
-
demo/
- pyproject.toml
- README.md
- main.py
- .python-version
- .gitignore
- .uv.lock
其中pyproject.toml类似package.json,用于描述项目。
使用uv创建虚拟环境
执行:
|
|
生成.venv。
Linux激活:
|
|
Windows激活:
|
|
也可以直接运行:
|
|
uv会自动:
- 创建环境
- 安装依赖
- 执行程序
无需手动activate。
安装Python依赖
添加依赖
例如安装requests:
|
|
执行后pyproject.toml和uv.lock都会更新。
pyproject.toml
|
|
安装开发依赖
|
|
pyproject.toml
|
|
常用命令总结
| 命令 | 作用 |
|---|---|
| uv init | 创建项目 |
| uv add | 添加依赖 |
| uv remove | 删除依赖 |
| uv sync | 同步环境 |
| uv run | 运行程序 |
| uv venv | 创建虚拟环境 |
| uv python install | 安装Python |
| uv python pin | 固定Python版本 |
| uv pip install | 兼容pip操作 |
Python开发流程推荐
|
|
参考
相关内容
- Python中的__all__:模块公开API设计的关键工具
- CPython 源码剖析:Python 运行的奥秘
- BeautifulSoup库使用
- Requests库使用
- Matplotlib简明教程
- Pandas简明教程
- 用Keras搭建卷积神经网络
- Tkinter简明教程
- OpenCV简明教程
请作者喝杯咖啡!
支付宝
微信