绿豆沙の小窝

Back

uv 入门

什么是 uv#

uv ↗ 是 Astral(Ruff 的团队)用 Rust 写的 Python 包和项目管理器,一个工具替代 pip、pip-tools、virtualenv、pyenv。

核心卖点:快 10-100 倍。解析依赖和安装包几乎瞬间完成。

安装#

# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

# Windows (PowerShell)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

# 或者用 pip
pip install uv
bash

包管理(替代 pip)#

# 安装包(比 pip install 快 10-100 倍)
uv pip install numpy pandas requests
uv pip install -r requirements.txt

# 卸载
uv pip uninstall numpy

# 列出已安装
uv pip list

# 冻结当前依赖
uv pip freeze > requirements.txt

# 编译依赖(生成精确锁定的依赖文件)
uv pip compile requirements.in -o requirements.txt
bash

uv pip compile 是 pip-tools 的替代,能从宽松的 requirements.in 生成带版本锁定的 requirements.txt。

虚拟环境(替代 virtualenv)#

# 创建虚拟环境
uv venv
uv venv myenv --python 3.12

# 激活(和标准 venv 一样)
source .venv/bin/activate    # Linux/macOS
.venv\Scripts\activate       # Windows
bash

Python 版本管理(替代 pyenv)#

# 安装指定 Python 版本
uv python install 3.12
uv python install 3.11 3.12 3.13   # 一次装多个

# 列出已安装的 Python
uv python list

# 创建环境时指定版本
uv venv --python 3.12
bash

项目管理(uv init)#

uv 支持类似 poetry 或 npm 的项目管理模式:

# 初始化项目(创建 pyproject.toml)
uv init my-project
cd my-project

# 添加依赖
uv add numpy pandas
uv add --dev pytest ruff       # 开发依赖

# 运行脚本
uv run python main.py
uv run pytest                  # 直接运行工具

# 锁定依赖
uv lock
uv sync                        # 安装所有依赖
bash

uv vs 传统工具#

操作传统方式uv
安装包pip installuv pip install
虚拟环境python -m venvuv venv
安装 Pythonpyenv installuv python install
依赖锁定pip-toolsuv pip compile
项目管理poetryuv init / add / run

一个工具打通所有环节,且速度碾压。

迁移建议#

场景建议
新项目直接用 uv init + uv add
已有项目uv pip install -r requirements.txt 替换 pip
已有 conda 环境用 uv 替代 pip 部分,conda 管理 Python 版本
CI/CD把 pip install 换成 uv pip install,构建快很多

常用速查#

命令用途
uv pip install pkg安装包
uv pip compile requirements.in锁定依赖
uv venv --python 3.12创建虚拟环境
uv python install 3.12安装 Python
uv init project初始化项目
uv add pkg添加项目依赖
uv run script.py运行脚本
uv sync同步依赖
uv 入门
https://lvdousha26.github.io/blog/uv-tutorial
Author lvdousha
Published at May 18, 2026