文章目录
- mkdir myproject && cd myproject uv venv source .venv/bin/activate # Windows: .venvScriptsactivate uv venv 会自动在当前目录下创建 .venv 虚拟环境。
- 使用 requirements.txt uv pip install -r requirements.txt 安装单个包 uv pip install requests 安装开发依赖 uv pip install pytest –dev 注意:目前 –dev 仅在使用 pyproject.toml 时有效。
- uv pip freeze > requirements.txt 或使用: uv lock 这会生成 uv.lock 文件,用于精确锁定依赖版本。
- 你可以创建一个 pyproject.toml 来定义项目依赖: [project] name = “myapp” version = “0.1.0” dependencies = [ “requests”, “fastapi>=0.68.0,<0.70.0” ] [build-system] requires = [“setuptools>=42”] build-backend = “setuptools.build_meta” 然后执行: uv sync 这会根据 pyproject.toml 安装依赖,并自动生成 uv.lock 文件。
- uv pip upgrade requests 升级所有依赖: uv pip upgrade –all
- uv pip uninstall requests
目录
- 一、uv 的特点
- 二、安装 uv
- 使用官方推荐方式(适用于大多数用户)
- 使用 pip 安装(Python >= 3.8)
- 使用 conda/mamba 安装(Conda 用户)
- 三、基本使用方法
- 1. 初始化项目并创建虚拟环境
- 2. 安装依赖
- 3. 生成依赖文件
- 4. 使用 pyproject.toml 管理依赖
- 5. 升级依赖
- 6. 删除依赖
- 四、高级功能
- 1. 可重复构建(Reproducibility)
- 2. 支持编辑模式(Editable Installs)
- 3. 镜像源设置(Mirror Support)
- 五、uv vs pip vs poetry 对比
- 六、适用场景推荐
- 七、示例流程(从零开始)
uv 是一个新兴的 Python 包管理工具,它旨在提供比 pip 和 poetry 更快、更现代的依赖管理体验。uv 由 Charles Murphy 开发,基于 Rust 构建,具有极高的性能和兼容性,支持标准的 requirements.txt 文件以及 pyproject.toml 中的依赖声明。
| 特点 | 描述 |
|---|---|
| 极速安装 | 使用 Rust 编写,依赖解析速度远超 pip 和 Poetry |
| 安全性 | 支持签名包验证(PEP 458) |
| 支持多种格式 | 兼容 wheels、sdists、editable installs |
| 虚拟环境管理 | 自动创建和管理虚拟环境 |
| 依赖锁定 | 自动生成 uv.lock 文件确保可重复构建 |
| 多种配置方式 | 支持 requirements.txt、pyproject.toml 等 |
| 跨平台 | 支持 macOS、Linux、Windows |
# macOS / Linux 用户使用以下命令安装
curl -Ls https://install.uv.rs | sh
安装后会将 uv 添加到你的 PATH 中。
pip install uv
conda install -c conda-forge uv
mkdir myproject && cd myproject
uv venv
source .venv/bin/activate # Windows: .venvScriptsactivate
uv venv 会自动在当前目录下创建 .venv 虚拟环境。
使用 requirements.txt
uv pip install -r requirements.txt
安装单个包
uv pip install requests
安装开发依赖
uv pip install pytest --dev
注意:目前 --dev 仅在使用 pyproject.toml 时有效。
uv pip freeze > requirements.txt
或使用:
uv lock
这会生成 uv.lock 文件,用于精确锁定依赖版本。
你可以创建一个 pyproject.toml 来定义项目依赖:
[project]
name = "myapp"
version = "0.1.0"
dependencies = [
"requests",
"fastapi>=0.68.0,<0.70.0"
]
[build-system]
requires = ["setuptools>=42"]
build-backend = "setuptools.build_meta"
然后执行:
uv sync
这会根据 pyproject.toml 安装依赖,并自动生成 uv.lock 文件。
uv pip upgrade requests
升级所有依赖:
uv pip upgrade --all
uv pip uninstall requests
通过 uv.lock 文件可以保证不同机器上的依赖完全一致:
uv sync
该命令会严格按照 uv.lock 中的版本安装依赖。
uv pip install -e .
适合本地开发调试。
uv pip install requests --index-url https://pypi.tuna.tsinghua.edu.cn/simple
支持国内镜像加速安装。
| 功能 | uv | pip | poetry |
|---|---|---|---|
| 依赖解析速度 | ⚡⚡⚡ | ⚡ | ⚡⚡ |
| 锁机制 | ✅ (uv.lock) | ❌ | ✅ (poetry.lock) |
| 虚拟环境管理 | ✅ | ❌(需配合 venv) | ✅ |
| 编辑模式支持 | ✅ | ✅ | ✅ |
| 依赖冲突检测 | ✅ | ❌ | ✅ |
| 打包发布支持 | ❌ | ❌ | ✅ |
| 镜像源支持 | ✅ | ✅ | ✅ |
| 安装方式 | 独立二进制、pip、conda | pip | pip、standalone installer |
| 场景 | 推荐 |
|---|---|
| 快速脚本、小项目 | ✅ uv + requirements.txt |
| Web 后端开发 | ✅ uv + pyproject.toml |
| 数据科学、AI 模型训练 | ✅ uv + Conda(如 Miniforge) |
| 需要打包发布的库 | ✅ Poetry |
| 需要多 Python 版本切换 | ✅ pyenv + uv |
# 创建项目目录
mkdir hello-uv && cd hello-uv
# 创建虚拟环境
uv venv
# 激活虚拟环境
source .venv/bin/activate
# 安装依赖
uv pip install requests
# 查看已安装包
uv pip list
# 冻结依赖
uv pip freeze > requirements.txt
# 生成锁文件
uv lock
# 后续只需运行:
uv sync
以上就是Python包管理工具之uv的使用详细指南的详细内容,更多关于Python uv包管理的资料请关注风君子博客其它相关文章!
您可能感兴趣的文章:
- Python利用uv轻松管理venv虚拟环境和pip依赖包
- Python 包管理工具 UV 功能介绍及安装方式详解
- Python依赖包管理工具uv安装与使用详解
- Python包管理工具核心指令uvx举例详细解析
- 现代 Python 包管理器 uv的使用详解
- Python包管理工具uv常用场景使用超详细指南
- python uv包管理小结