# uv使用简略教程

**URL:** <https://forum.beginner.center/t/topic/1604>\
**Category:** 🛠工具与编程\
**Tags:** uv\
**Created:** [2024 年11 月 10 日 08:12 UTC](https://forum.beginner.center/t/topic/1604 "2024-11-10T08:12:23Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

作者： ![doggie](https://forum.beginner.center/user_avatar/forum.beginner.center/doggie/32/550_2.png) [@doggie](https://forum.beginner.center/u/doggie)\
发布日期： [2024 年11 月 10 日 08:12 UTC](https://forum.beginner.center/t/topic/1604/1 "2024-11-10T08:12:23Z")

</div>

> 本文由 [简悦 SimpRead](http://ksria.com/simpread/) 转码， 原文地址 [www.studywithgpt.com](https://www.studywithgpt.com/zh-cn/tutorial/rvbe2q)

> 本章介绍如何在 Python 中使用工具，重点讲解 `uv` 包的相关内容，包括如何运行、安装、升级工具，以及如何处理特定版本和源。

## 在 Python 中使用 UV 工具

本章主要关注如何在 Python 中使用`uv`包，涵盖其安装、运行、升级工具，以及处理特定版本和源，提供实际示例以便更好地理解。

### 1. 安装 UV 工具

在使用`uv`工具之前，用户需要确保安装了`uv`包。可以通过 Python 的包管理工具来安装。例如，使用`pip`可以执行以下命令：

```auto
$ pip install uv

```

安装完成后，用户就可以开始使用`uv`提供的各种工具。

### 2. 运行工具

在`uv`中，用户可以使用`uvx`命令来运行工具，而无需安装它。例如，若要运行`ruff`工具，可以使用以下命令:

```auto
$ uvx ruff

```

需要注意的是，`uvx`命令的用法与下面的命令是等效的：

```auto
$ uv tool run ruff

```

这里，`uvx`仅仅是一个方便的别名。

用户可以在工具名称之后提供参数。例如，运行`pycowsay`工具时，可以输入：

```auto
$ uvx pycowsay hello from uv

  -------------
< hello from uv >
  -------------
   \ ^__^
    \ (oo)\ _______
       (__)\ )\/\
           ||----w |
           || ||

```

在使用`uvx`运行工具时，该工具会被安装到临时的、隔离的环境中。

### 3. 命令与不同包名称

当用户执行`uvx ruff`时，`uv`会安装提供`ruff`命令的`ruff`包。然而，有时候包名称和命令名称可能不同。为了从特定包中调用命令，用户可以使用`--from`选项。例如，使用`http`命令，它是由`httpie`包提供的：

```auto
$ uvx --from httpie http

```

### 4. 请求特定版本

如果用户希望运行特定版本的工具，可以使用`command@<version>`语法。例如，要运行`ruff`的特定版本，可以输入：

```auto
$ uvx [email protected] check

```

若希望运行最新版本，可以使用`command@latest`：

```auto
$ uvx ruff@latest check

```

用户还可以利用`--from`选项来指定包的版本：

```auto
$ uvx --from 'ruff==0.3.0' ruff check

```

此外，可以约束版本范围：

```auto
$ uvx --from 'ruff>0.2.0,<0.3.0' ruff check

```

需要注意的是，`@`语法只能用于确切版本。

### 5. 请求不同源

用户还可以使用`--from`选项从替代源安装工具。例如，要从 git 拉取包，可以执行：

```auto
$ uvx --from git+https://github.com/httpie/cli httpie

```

### 6. 处理带有插件的命令

在运行某些命令时，用户可以包含额外的依赖项。例如，要在运行`mkdocs`时包含`mkdocs-material`，可以执行：

```auto
$ uvx --with mkdocs-material mkdocs --help

```

### 7. 安装工具

如果用户经常使用某个工具，可以选择将其安装到持久环境中，并将其添加到`PATH`中，而不是重复使用`uvx`。例如，要安装`ruff`，可以执行：

```auto
$ uv tool install ruff

```

安装后，工具的可执行文件将放置在`PATH`中的`bin`目录中，这样工具就可以在不使用`uv`的情况下运行。如果未添加到`PATH`，系统将显示警告，并且用户可以使用`uv tool update-shell`将其添加到`PATH`中。

安装`ruff`后，用户可以验证其可用性：

```auto
$ ruff --version

```

需要注意的是，与`uv pip install`不同，安装工具并不会使其模块在当前环境中可用。例如，以下命令将失败：

```auto
$ python -c "import ruff"

```

这种隔离对于减少工具、脚本和项目之间依赖项的干扰和冲突非常重要。

与`uvx`不同，`uv tool install`操作的是一个包，并将安装该工具提供的所有可执行文件。例如，以下命令将安装`http`、`https`和`httpie`可执行文件：

```auto
$ uv tool install httpie

```

用户还可以在不使用`--from`的情况下包含包版本：

```auto
$ uv tool install 'httpie>0.1.0'

```

同样，用户可以指定包源：

```auto
$ uv tool install git+https://github.com/httpie/cli

```

与`uvx`一样，安装也可以包括额外的包：

```auto
$ uv tool install mkdocs --with mkdocs-material

```

### 8. 升级工具

用户可以使用`uv tool upgrade`命令来升级工具。例如，要升级`ruff`，可以执行：

```auto
$ uv tool upgrade ruff

```

工具升级将遵循安装时提供的版本约束。例如，如果用户执行了`uv tool install ruff >=0.3,<0.4`，随即使用`uv tool upgrade ruff`，`ruff`将升级到范围内的最新版本。

若要替换版本约束，用户可以重新安装工具：

```auto
$ uv tool install ruff>=0.4

```

用户也可以一次性升级所有工具：

```auto
$ uv tool upgrade --all

```

### 9. 结论

通过上述步骤，用户应能够在 Python 中有效使用`uv`工具。无论是安装、运行、升级工具，还是管理特定版本和源，`uv`都提供了一种灵活的机制来满足开发需求。通过实践和运用，用户将能够熟练掌握这一工具，提高开发效率。

# 更多

- [uv中文文档](https://forum.beginner.center/t/topic/1869)
- [【转载】使用 uv 更快速地管理 Python 项目 – V2 方圆](https://forum.beginner.center/t/topic/1849)
