张小凯的博客

张小凯的博客

马上订阅 张小凯的博客 RSS 更新: https://jasonkayzk.github.io/atom.xml

uv使用

2025年7月14日 14:02

uv 是一个用 Rust 编写的、速度极快的 Python 包和项目管理工具,由 ruff 的作者开发。它的目标是成为 pipvenvvirtualenvpip-tools 等工具的直接替代品,提供一个统一、快速且易于使用的体验。

本文总结了如何安装和使用 uv

官方仓库:


uv使用

一、简介

如果你对 Python 的包管理生态有所了解,你可能用过 pip 来安装包,用 venvvirtualenv 来创建虚拟环境,用 pip-tools 来锁定依赖。这些工具各司其职,但组合使用起来有时会显得有些繁琐。

uv 的出现就是为了解决这个问题。它将包安装、虚拟环境管理和依赖解析等功能集成到了一个单一的命令行工具中,并且性能极高。

主要特点:

  • 极速: uv 利用了先进的依赖解析算法和全局缓存,安装和解析包的速度比 pip 快得多。
  • 一体化: 无需在 pipvenv 之间切换,uv 提供了统一的命令来处理大多数包和环境管理任务。
  • 直接替代: uv 的命令设计与 pip 非常相似(例如 uv pip install),使得迁移成本非常低。
  • 依赖锁定: 内置了类似 pip-tools 的功能,可以从 pyproject.tomlrequirements.in 文件编译生成锁定的 requirements.txt 文件。

二、安装

uv 提供了多种安装方式:

macOS 和 Linux

使用 curl:

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

Windows

使用 PowerShell:

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

其他方式

也可以通过 pipbrew 等包管理器安装:

# 通过 pippip install uv# 通过 Homebrewbrew install uv

安装完成后,可以通过 uv --version 来验证是否成功。


三、基本使用

uv 的使用非常直观,特别是对于熟悉 pipvenv 的用户。

1、管理python版本

使用如下命令,显示出当前环境中所有可用的python版本(包括已经安装的和可以安装的)

uv python list

如果需要安装其他版本的python,使用如下命令

uv python install 3.12

除了标准python之外,还可以安装其他的Python实现,比如PyPy实现的python:

uv python install pypy@3.10

查找某个python版本的路径:

❯ uv python find 3.10/Library/Frameworks/Python.framework/Versions/3.10/bin/python3.10

四、单个脚本使用

参考:

uv 可以管理单文件脚本的依赖项和环境;

例如:创建一个新脚本并添加内联元数据来声明其依赖项:

$ echo 'import requests; print(requests.get("https://astral.sh"))' > example.py$ uv add --script example.py requestsUpdated `example.py`

然后,在隔离的虚拟环境中运行脚本:

$ uv run example.pyReading inline script metadata from: example.pyInstalled 5 packages in 12ms<Response [200]>

五、项目中使用

1、选用python版本

在具体的某个项目中,进入项目目录,使用如下命令指定选用的python版本:

uv python pin 版本号

这个命令会在指定目录下创建一个.python-version文件,内容如下:

❯ uv python pin 3.10                                    Pinned `.python-version` to `3.10`❯ cat .python-version  3.10

注意:这里选用的python版本只和uv管理的虚拟环境有关系,和我们全局的python、python3命令都没有关系!


2、创建虚拟环境

创建项目有两种方式,第一种方式,先创建好项目目录,然后设置python版本并初始化uv虚拟环境:...

剩余内容已隐藏

查看完整文章以阅读更多