uv 是 Astral 出品的超快 Python 包/项目管理工具(Rust 编写),可替代 pip、pip-tools、virtualenv、pyenv、poetry 等。下面按使用场景整理常用命令。
一、安装 uv
# macOS / Linuxcurl-LsSfhttps://astral.sh/uv/install.sh|sh# Windows (PowerShell)powershell-ExecutionPolicyByPass-c"irm https://astral.sh/uv/install.ps1 | iex"# 或通过 pip 安装pipinstalluv# 验证安装uv--version二、管理 Python 版本(替代 pyenv)
uv pythoninstall3.12# 安装指定 Python 版本uv python list# 查看已安装/可下载的版本uv pythonfind3.12# 查找某版本的路径uv python uninstall3.11# 卸载uv 会按需自动下载 Python,无需手动安装。
三、创建虚拟环境(替代 virtualenv)
uv venv# 创建 .venv(用默认 Python)uv venv--python3.12# 指定 Python 版本uv venv myenv# 自定义目录名激活(uv 本身不需要激活,激活只是为了兼容老习惯):
source.venv/bin/activate# macOS/Linux.venv\Scripts\activate# Windows四、项目管理(推荐工作流,替代 poetry/pdm)
初始化项目
uv init myproject# 新建项目目录cdmyproject uv init# 在已有目录中初始化uv init--lib# 库项目(会生成 src 布局)生成文件:pyproject.toml、README.md、main.py,以及锁定版本的uv.lock。
添加 / 移除依赖
uvaddrequests# 添加运行时依赖uvadd'pytest>=8'# 带版本约束uvadd--devruff# 开发依赖(写入 dev group)uvadd--groupdocs mkdocs# 自定义依赖组uv remove requests# 移除依赖uvaddrequests--upgrade# 升级某个包uv lock--upgrade# 升级全部锁定安装与同步环境
uvsync# 按 uv.lock 完整同步 .venvuvsync--frozen# CI 中严格按锁文件,不重新解析uvsync--no-dev# 只装运行时依赖(生产环境)运行命令
uv run python main.py# 自动使用项目环境运行uv run pytest# 运行依赖的工具,无需手动安装uv run --no-sync python x.py# 跳过同步直接运行uv run--withrich python x.py# 临时附加依赖运行其他项目命令
uv lock# 生成/更新 uv.lockuv tree# 查看依赖树uv build# 构建 sdist/wheeluv publish# 发布到 PyPIuvexport--formatrequirements-txt>requirements.txt# 导出旧格式五、pip 兼容模式(低侵入式使用)
如果已有requirements.txt的项目,可直接用:
uv pipinstall-rrequirements.txt uv pipinstallrequests uv pip list uv pip freeze uv pip uninstall requests uv pip compile requirements.in-orequirements.txt# 替代 pip-tools> 注意:uv pip需要在虚拟环境中运行(或加--system)。
六、工具运行(替代 pipx)
uvx ruff check# 临时运行 ruff(等价 uv tool run)uv toolinstallruff# 永久安装某工具到独立环境uv tool list# 查看已安装工具uv tool upgrade ruff# 升级工具uv tool uninstall ruff七、常用全局选项
| 选项 | 说明 |
|---|---|
-p 3.12/--python 3.12 | 指定 Python 版本 |
--directory <path> | 在指定项目目录执行 |
--system | 操作系统级 Python(谨慎使用) |
UV_INDEX_URL | 换源,如国内镜像https://mirrors.aliyun.com/pypi/simple/ |
换源示例(写入~/.config/uv/uv.toml):
[[index]] url = "https://mirrors.aliyun.com/pypi/simple/" default = true八、日常速查流程
# 开始一个新项目uv init myapp&&cdmyapp uvaddfastapi uvicorn# 开发uv run uvicorn main:app--reload# 加开发依赖uvadd--devpytest uv run pytest# 团队协作gitaddpyproject.toml uv.lock# 队友拉代码后:uvsync# CI 中uvsync--frozen&&uv run pytest核心记忆点:
uv add装依赖、uv sync同步环境、uv run跑命令 —— 这三条覆盖 90% 的项目日常;uv pip系列兼容旧习惯,uvx/uv tool管理命令行工具;- 所有操作都极快(比 pip 快 10–100 倍),且 uv 会自动管理 Python 版本和虚拟环境。