在 Python 开发的广袤星空中,管理项目如同驾驶一艘星际飞船:需要精准的导航、迅捷的速度和强大的工具箱。uv,这个用 Rust 打造的 Python 包和项目管理器,自 2024 年初问世以来,以其光速性能和统一工作流,迅速成为开发者的新宠。它不仅能替代 pip、virtualenv、pyenv 等传统工具,还通过简洁的命令和高效的设计,让项目管理如行云流水。本手册将以《自然》杂志的风格,带你从零开始掌握 uv 的使用方法,通过详细的代码示例和实用场景,解锁 Python 项目的管理魔法。无论你是新手还是老舰长,这份手册都将是你探索 uv 星系的可靠指南。
🚀 点火升空:安装 uv
每艘飞船的旅程始于组装,uv 的安装就是点燃引擎的第一步。uv 提供多种安装方式,适配不同操作系统,让你轻松启动。
🌍 macOS 和 Linux:星际传送门
在终端运行以下命令,uv 将通过星际传送门瞬间抵达:
curl -LsSf https://astral.sh/uv/install.sh | sh
或者,使用 Homebrew 从星港直接提货:
brew install uv
🪐 Windows:虚拟船坞
Windows 用户通过 PowerShell 组装飞船:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
🔍 验证安装
安装完成后,运行以下命令检查飞船状态:
uv version
如果输出类似 uv 0.4.25
,恭喜你,飞船已准备就绪!
注解:uv 是一个静态二进制文件,独立于 Python 环境,安装后无需担心版本冲突。避免使用
pip install uv
,以免引入不必要的依赖。
🪐 开辟星球:初始化项目
一个 Python 项目就像一颗新发现的星球,需要搭建基础设施。uv 的 uv init
命令能快速为你构建一个项目框架。
🌟 代码示例:创建 explore-uv 项目
假设你要探索一个名为 explore-uv
的星球,运行:
uv init explore-uv
cd explore-uv
uv 会生成以下文件,宛如在一颗荒芜星球上建立生态舱:
.gitignore
:屏蔽临时文件和缓存。.python-version
:指定 Python 版本,如3.12
。README.md
:项目说明文档。hello.py
:一个简单的测试脚本。pyproject.toml
:项目核心配置文件,记录依赖和元数据。
生成的 hello.py
内容如下:
# hello.py
print("Hello, uv!")
运行以下命令测试脚本:
uv run hello.py
输出:
Hello, uv!
注解:
uv run
会在项目的虚拟环境中执行脚本,自动隔离依赖,无需手动激活环境。pyproject.toml
遵循 PEP 621 标准,是现代 Python 项目的核心。
🌌 招募盟友:管理依赖
依赖包是项目的盟友,为星球注入活力。uv 的依赖管理快速且灵活,支持添加、移除和锁定依赖。
🛠️ 代码示例:添加机器学习依赖
假设你的项目需要 scikit-learn
和 pandas
,运行:
uv add scikit-learn pandas
uv 会:
- 创建虚拟环境(若不存在)。
- 解析并安装依赖(约 1.78 秒解析,45 毫秒安装)。
- 更新
pyproject.toml
和uv.lock
。
查看 pyproject.toml
:
[project]
name = "explore-uv"
version = "0.1.0"
depe