> ## Content Index
> Fetch the complete content index at: https://djdog.cc/llms.txt
> Use this file to discover other available public pages before exploring further.

# 使用 UV 来管理使用 Python
- URL: https://djdog.cc/blog/2024/uv-python/
- Published: 2024-12-12T14:46:45.000Z
- Updated: 2026-09-29T09:22:05.000Z
- Description: UV 简明入门指南
- Author: DJDOG
- Tags: 开发工具, Python, #toc

💡

本文是对 [UV](https://astral.sh/uv?ref=djdog.cc) 的简明入门指南，旨在帮助用户快速上手使用 UV 来管理 Python 包和项目。如果你对 UV 感兴趣，可以访问 [UV 官方文档](https://docs.astral.sh/uv/?ref=djdog.cc) 了解更多信息。

`uv` 是由 Astral 开发的一个极其快速的 Python 包和项目管理工具，使用 Rust 编写。它旨在统一和简化 Python 的包管理、项目管理、Python 版本管理等多个方面，提供类似于 Rust 语言中 `Cargo` 的功能。

## 主要功能

- **包管理**：`uv` 可以替代 `pip`、`pip-tools` 等工具，提供更高效的包安装和解析功能，速度提升可达 10 至 100 倍。
- **项目管理**：支持使用 `pyproject.toml` 文件管理项目依赖，生成跨平台的锁定文件，确保项目环境的一致性。
- **工具管理**：类似于 `pipx`，`uv` 可以在隔离的虚拟环境中安装和运行命令行工具，并支持一次性运行无需显式安装的命令。
- **Python 版本管理**：`uv` 能够安装和管理不同版本的 Python，支持快速切换，简化 Python 版本的管理。
- **脚本支持**：`uv` 可以管理带有内联依赖元数据的单文件脚本，确保脚本在隔离的环境中运行，避免依赖冲突。

## 安装方法

### 独立安装程序

Mac 和 Linux：

```sh
curl -LsSf https://astral.sh/uv/install.sh | sh

```

Windows：

```powershell
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

```

### 包管理器安装

在 Windows 上更推荐使用 Scoop 来进行安装：

```powershell
scoop install uv

```

如果不知道什么是 scoop 可以通过[这篇文章](https://djdog.cc/scoop-win/)来了解。

除了上面的方式以外，`uv` 还可以通过 `PyPI` 安装：

```sh
pipx install uv # 装到隔离环境里
pip install uv

```

## 使用指南

### Python 版本管理

**查看支持的 Python 版本**

使用以下命令可以查看 `uv` 支持的 Python 版本：

```sh
uv python list

```

这将显示可用的 Python 版本列表，包括不同的主次版本。

**安装特定版本的 Python**

使用以下命令安装特定版本的 Python，例如安装 Python 3.13：

```sh
uv python install 3.13

```

这会下载并安装 Python 3.11 到 `uv` 的管理路径中。

**切换 Python 版本**

使用以下命令切换到某个已经安装的 Python 版本，例如 Python 3.13：

```sh
uv python pin 3.13

```

### 项目管理

**初始化一个新项目**

可以通过以下命令初始化一个名为 `my_project` 的项目

```sh
uv init my_project
cd my_project

```

可以得到一个这样的文件夹：

```sh
❯ tree  
.  
├── hello.py  
├── pyproject.toml  
└── README.md

```

其中 `pyproject.toml` 是这个 Python 项目中的配置文件，可以包含以下内容：

1. **\[build-system\]**: 定义构建项目所需的系统和工具。
2. **\[tool\]**: 配置各种工具的选项，如格式化工具、测试工具等。
3. **\[project\]**: 描述项目的元数据，如项目名称、版本、描述等。

**添加依赖**

以添加依赖 `requests` 为例：

```sh
# 默认安装最新版本的依赖
uv add requests

# 安装指定版本的依赖
uv add requests@1.0.0

```

这个命令会在 `pyproject.toml` 中的 `dependencies` 部分添加类似以下内容：

**pyproject**

```toml
[project]
name = "my-project"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.13"
dependencies = [
    "requests>=2.32.3"
]

```

当从已有的 `pyproject.toml` 恢复环境时，则需运行：

```sh
uv sync

```

**删除依赖**

以删除依赖 `requests` 为例：

```sh
uv remove requests

```

### 运行项目

以演示中所创建的 `my_project` 为例：

```sh
uv run hello.py

```