比python的pip好用的uv工具包
@[TOC](比python的pip好用的uv工具包)
## 1. uv新一代的包管理工具
### 1.0 官网地址
- https://docs.astral.sh/uv/#tools
- https://github.com/astral-sh/uv
### 1.1 如何安装
```js
# On Windows.--> 这里有时需要开启脚本运行: Set-ExecutionPolicy RemoteSigned -scope CurrentUser
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
# On macOS and Linux.
curl -LsSf https://astral.sh/uv/install.sh | sh
# With pip. 不推荐
pip install uv
```

## 2 基础命令
### 2.1 环境管理
```js
# 1. 先初始化一个项目
uv init uv_example
# 2. 指定 Python 版本: 语法:`uv venv 环境名称 --python 版本` 推荐! 这样会创建一个test01的文件夹, 里面放着环境,可以安装多个版本,使用use进行切换python ==> uv python use 3.10
uv venv --python 3.11
# 3. 创建虚拟环境: 环境名称、版本可省略:`uv venv`
uv venv
# 4. 激活环境(Windows),,然后可以运行 python --version 看是否是我们指定的python版本,, 在 linux 需要加 source .venv\Scripts\activate
.venv\Scripts\activate
python --version
# 5. 查看uv安装依赖库, 可以查看这个toml文件,也可以使用: uv pip list ==> 或者更加详细一点的: uv pip freeze
uv add ruff
移除库
uv remove ruff
# 6. 可以uv运行py文件
uv run .\main.py
```

### 2.2 包管理
```js
# 添加依赖(会更新 pyproject.toml)
uv add flask
uv add --dev pytest
# 安装依赖(不更新配置文件)
uv pip install flask
# 从项目配置安装
uv pip install .
```
### 2.3 依赖同步
```js
# 同步项目依赖
uv sync
# 更新依赖
uv sync --upgrade
# 更新特定包
uv sync --upgrade-package flask
```
## 3. 项目最佳实践
### 3.1 新项目初始化
```js
# 1. 创建项目目录
mkdir my-project && cd my-project
# 2. 创建虚拟环境
uv venv --python 3.11
# 3. 激活环境
.venv\Scripts\activate
# 4. 添加依赖
uv add flask fastapi
uv add --dev pytest black
# 5. 同步依赖
uv sync
```
### 3.2 配置文件示例
```js
# pyproject.toml
[project]
name = "my-project"
version = "0.1.0"
description = "Project description"
requires-python = ">=3.11"
dependencies = [
"flask",
"fastapi"
]
[project.optional-dependencies]
dev = [
"pytest",
"black"
]
```
### 3.3 团队协作流程
#### 3.3.1 克隆项目后:
```js
uv venv
.venv\Scripts\activate
uv sync
```
#### 3.3.2 添加新依赖时:
```js
uv add new-package
uv sync # 更新锁文件
git add pyproject.toml uv.lock
```
#### 3.3.3 CI/CD 环境:
```js
uv sync --locked # 确保可重现的构建
```
## 4. UV vs pip 命令对比
| 功能 | UV 命令 | pip 命令 |
|--------|---------------------|---------------------------------|
| 安装包 | uv add flask | pip install flask |
| 安装开发依赖 | uv add --dev pytest | pip install pytest |
| 从文件安装 | uv sync | pip install -r requirements.txt |
| 更新包 | uv sync --upgrade | pip install --upgrade |
## 5. 版本管理
### 5.1 通过配置文件
```js
# pyproject.toml
[project]
requires-python = ">=3.9,<3.11"
```
### 5.2 5.2 通过命令行
```js
# 创建特定版本环境
uv venv --python 3.9
# 使用 .python-version 文件
echo "3.9.7" > .python-version
```
## 6. 最佳实践总结
### 6.1 依赖管理:
- 使用 uv add 添加新依赖
- 使用 uv sync 同步项目依赖
- 总是提交 uv.lock 到版本控制
### 6.2 环境管理:
- 每个项目使用独立虚拟环境
- 明确指定 Python 版本要求
- 使用 --dev 分离开发依赖
### 6.3 团队协作:
- 统一使用 `pyproject.toml`
- 保持锁文件更新
- CI/CD 中使用 `--locked` 标志

浙公网安备 33010602011771号