uv 是一个现代 Python 工具链,主打更快的依赖安装、虚拟环境管理、Python 版本管理,以及基于 pyproject.toml 的项目工作流。
1. uv 是什么
uv 可以理解成一个集成化的 Python 开发工具,常见用途包括:
- 创建和管理虚拟环境
- 安装和管理 Python 版本
- 管理项目依赖
- 运行脚本和命令
- 兼容
pip风格的依赖安装方式
2. 最常用的几类命令
uv 常见可以分成两种使用方式:
- 项目工作流:围绕
pyproject.toml - pip 兼容工作流:围绕
requirements.txt
3. 虚拟环境相关
创建虚拟环境
uv venv
默认会在当前目录创建虚拟环境。
指定目录:
uv venv .venv
指定 Python 版本:
uv venv --python 3.12
激活虚拟环境
Windows:
.venv\Scripts\activate
Linux / macOS:
source .venv/bin/activate
4. Python 版本管理
安装 Python
uv python install
安装指定版本:
uv python install 3.12
安装多个版本:
uv python install 3.11 3.12
查看可用版本
uv python list
5. 新项目常用命令
初始化项目
uv init
初始化指定目录项目:
uv init myproj
添加依赖
uv add requests
指定版本约束:
uv add "fastapi>=0.115"
删除依赖
uv remove requests
锁定依赖
uv lock
同步环境
uv sync
6. 运行命令和脚本
运行 Python 脚本
uv run python main.py
运行测试
uv run pytest
运行任意命令
uv run fastapi dev app.py
直接运行脚本文件
uv run script.py
7. 依赖查看与构建
查看依赖树
uv tree
构建项目
uv build
8. requirements.txt 工作流
对于已有的老项目,或者仍然使用 requirements.txt 的项目,可以使用 uv pip 子命令。
安装 requirements.txt
uv pip install -r requirements.txt
这条命令的作用类似于:
pip install -r requirements.txt
按 requirements 严格同步
uv pip sync requirements.txt
生成 requirements.txt
从 pyproject.toml 生成:
uv pip compile pyproject.toml -o requirements.txt
从 requirements.in 生成:
uv pip compile requirements.in -o requirements.txt
9. 常见使用场景
场景一:新建一个 Python 项目
uv init
uv add requests
uv run python main.py
场景二:已有 requirements.txt 的老项目
uv venv
uv pip install -r requirements.txt
场景三:拉下别人的项目后恢复环境
uv sync
uv run pytest
场景四:需要指定 Python 版本
uv python install 3.12
uv venv --python 3.12
10. 几个高频命令的区别
uv run
在项目环境中运行命令。
uv run python app.py
uv sync
根据项目配置和锁文件同步依赖环境。
uv sync
uv add
向项目中添加依赖。
uv add requests
uv pip install
按 pip 的习惯安装依赖,适合 requirements.txt 工作流。
uv pip install -r requirements.txt
uv venv
创建虚拟环境。
uv venv
uv python install
安装 Python 解释器。
uv python install 3.12
11. 一些常用命令
uv venv
uv sync
uv add requests
uv run python main.py
uv pip install -r requirements.txt
uv python install 3.12
覆盖了:
- 建环境
- 装依赖
- 跑项目
- 管理 Python 版本
- 兼容老项目
12. 总结
如果是新项目,优先推荐使用 uv 的项目工作流:
uv init
uv add <package>
uv sync
uv run <command>
如果是老项目,尤其是已有 requirements.txt,就使用:
uv venv
uv pip install -r requirements.txt