你好,Python 开发者!你是否还在忍受 pip 缓慢的依赖安装速度?是否在 venv, pip-tools, poetry, pyenv 等众多工具中反复横跳,感到心累?
今天,让我们来认识一款可能终结这一切的工具 —— uv。
uv 是一个用 Rust 编写的、速度极快的 Python 包和项目管理器。 它的目标是提供一个统一、高效的开发工作流程,取代前面提到的多个工具,让你的 Python 开发体验如丝般顺滑。
这篇教程将带你从零开始,一步步掌握 uv 的核心用法。
✨ 为什么选择 uv?
- ⚡️ 极致的速度:
uv的安装和解析速度比pip快 10-100 倍,这得益于其底层的 Rust 实现和智能缓存机制。 - 一体化解决方案:
uv一个工具就集成了 Python 版本管理、虚拟环境、包安装、依赖锁定等多种功能。 - 无缝兼容:它完全兼容
pip的命令和requirements.txt/pyproject.toml文件。 - 现代化的项目管理:支持类似
npm或cargo的项目管理方式,通过uv init和uv add简化工作流。
🚀 第一步:安装 uv
安装 uv 非常简单,官方提供了跨平台的安装方式。
macOS / Linux:
curl -LsSf https://astral.sh/uv/install.sh | sh
Windows (PowerShell):
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
或者,你也可以通过 pip 来安装:
pip install uv
安装完成后,运行以下命令验证是否成功:
uv --version
🛠️ 第二步:项目初始化与环境管理
忘掉 python -m venv .venv 吧!uv 让环境管理变得前所未有的简单。
1. 初始化一个新项目
让我们从创建一个新项目开始。
# 创建并进入项目目录
uv init my-fast-project
cd my-fast-project
uv init 会为你生成一个 pyproject.toml 文件,这是现代 Python 项目的标配。 同时,它会自动检测并创建一个虚拟环境 .venv。
2. 创建和使用虚拟环境
如果你只是想快速创建一个虚拟环境,可以使用 uv venv。
# 在当前目录下创建一个名为 .venv 的虚拟环境
uv venv
uv 的绝大多数命令都会自动识别并使用当前目录下的 .venv 环境,你甚至不需要手动 source .venv/bin/activate。
📦 第三步:依赖管理(核心功能)
这是 uv 最激动人心的部分。
1. 添加依赖
使用 uv add 来为你的项目添加依赖。uv 会自动将依赖信息写入 pyproject.toml 并安装它。
# 添加单个依赖,例如 FastAPI
uv add fastapi
# 添加开发环境依赖,例如 pytest
uv add pytest --dev
你会发现,即使是像 pandas 或 torch 这样的大型库,安装速度也快得惊人。
2. 同步环境
uv sync 命令会读取 pyproject.toml 和 uv.lock (如果存在),并确保你的虚拟环境和项目定义的依赖完全一致。 这是保证团队成员环境一致性的利器。
# 安装/更新/移除包,使环境与配置文件同步
uv sync
3. pip 兼容命令
如果你对 pip 的命令情有独钟,uv 提供了完全兼容的接口,同时赋予你 uv 的速度。
-
安装依赖:
# 从 PyPI 安装 uv pip install "requests>=2.0" # 从 requirements.txt 文件安装 uv pip install -r requirements.txt -
查看已安装的包:
uv pip list uv pip freeze -
卸载包:
uv pip uninstall requests
🏃 第四步:运行你的代码
当你需要执行脚本或命令时,使用 uv run 可以确保它在正确的虚拟环境中运行。
# 假设你有一个 main.py 文件
# 使用 uv run 来执行它
uv run python main.py
# 运行测试
uv run pytest
🌲 更多高级用法
uv 的功能远不止于此。
-
依赖树查看:清晰地看到你的项目依赖关系。
uv tree -
Python 版本管理:
uv甚至可以帮你安装和管理 Python 版本,告别pyenv。# 安装 Python 3.12 uv python install 3.12 # 查看所有可用的 Python 版本 uv python list -
全局工具安装:类似
pipx,安全地安装和运行命令行工具。# 在隔离环境中运行 black 格式化代码,无需在项目中安装 uv tool run black . # 全局安装一个工具 uv tool install ruff
总结
uv 通过提供一个高性能、一体化的工具集,极大地简化了 Python 的开发工作流程。 从项目创建、环境管理到依赖安装和脚本执行,它都提供了无与伦比的速度和便捷性。
是时候给你的 Python 工具箱来一次升级了。拥抱 uv,享受更流畅、更现代的开发体验吧!