> 技术文档 > Python 依赖包管理工具:uv_安装uv

Python 依赖包管理工具:uv_安装uv


Python 依赖包管理工具:uv

  • 简介
    • 1.安装
    • 2. 基本使用
      • 2.1 创建虚拟环境
      • 2.2 激活虚拟环境
      • 2.3 初始化项目
      • 2.4 安装依赖
      • 2.4 移除依赖
      • 2.5 查看已安装的包
      • 2.6 生成 requirements.txt
    • 3. UV 与 Pip、Pipenv、Virtualenv 的对比
  • 总结

简介

UV 是一个用 Rust 编写的 Python 包安装和依赖管理工具,比传统工具(如 pip)有着更快、更高效的体验。它主要关注两个核心目标:

  • 速度: UV 在包安装、依赖解析和虚拟环境创建等方面进行了优化,速度有显著的提升。
  • 效率: UV 可以减少资源消耗,尤其是在大型项目中。

UV 基于 pip 和 venv 的概念,因此与现有 Python 生态系统兼容,学习曲线相对平缓。

GitHub仓库:https://github.com/astral-sh/uv

1.安装

使用 pip 安装 UV:

pip install uv

Python 依赖包管理工具:uv_安装uv
检查当前安装的 uv 版本,可以在命令行中运行以下命令:

uv --version

Python 依赖包管理工具:uv_安装uv

2. 基本使用

2.1 创建虚拟环境

UV 可以快速创建 Python 虚拟环境:

uv venv .venv # 创建一个名为 .venv 的虚拟环境

Python 依赖包管理工具:uv_安装uv

python -m venv .venv 相比,UV 版本的速度通常更快。

2.2 激活虚拟环境

创建好虚拟环境后,需要激活它才能使用:

.venv\\Scripts\\activate # 在 Windows 上

Python 依赖包管理工具:uv_安装uv

uv venv -p 3.11.9 # 指定本机已安装的Python版本

Python 依赖包管理工具:uv_安装uv

2.3 初始化项目

uv init # 生成pyproject.toml

Python 依赖包管理工具:uv_安装uv

2.4 安装依赖

  • 用 UV 导入 requirements.txt 到 pyproject.toml

    uv add -r requirements.txt

    这条命令会把 requirements.txt 里的所有依赖添加到 pyproject.toml,并生成/更新 uv.lock,同时自动安装依赖。

  • 用 UV 管理依赖
    以后我们可以用 uv add、uv remove、uv sync 等命令来管理依赖,而不再需要手动维护 requirements.txt。

  • 从pyproject.toml自动安装依赖:

    uv sync

    这条命令会根据 pyproject.toml(和 uv.lock,如果存在)自动安装所有声明的依赖包。
    如果是第一次运行 uv sync,且还没有 uv.lock 文件,uv 会解析 pyproject.toml,下载并安装依赖,并自动生成 uv.lock 文件用于锁定依赖版本。
    Python 依赖包管理工具:uv_安装uv

  • 添加一个或多个依赖:

    uv add pandas airtest

Python 依赖包管理工具:uv_安装uv

UV 在安装依赖时,会进行并行下载和编译,显著提升速度。

2.4 移除依赖

使用 remove 命令移除依赖包:

uv remove requests

2.5 查看已安装的包

使用 list 命令查看已安装的包:

uv pip list

Python 依赖包管理工具:uv_安装uv

2.6 生成 requirements.txt

虽然 UV 自身不直接提供生成 requirements.txt 的功能,但你可以使用 pip freeze 命令:

uv pip freeze > requirements.txt

3. UV 与 Pip、Pipenv、Virtualenv 的对比

功能 UV Pip Pipenv Virtualenv 安装速度 更快 较慢 中等 不适用 资源占用 更低 较高 中等 中等 并行下载 支持 有限支持 不支持 不适用 虚拟环境创建速度 更快 较慢 中等 较慢 依赖管理 支持 支持 支持 不适用 虚拟环境管理 支持 不支持 支持 支持 项目初始化 支持 不支持 支持 不支持 依赖锁定 支持 不支持 支持 不支持 跨平台支持 支持 支持 支持 支持

总结

UV 是一个新兴的 Python 包安装和依赖管理工具,凭借其用 Rust 编写的高效实现,在速度和资源占用方面显著优于传统的 pip 和 virtualenv。UV 不仅支持快速创建虚拟环境,还能并行下载和编译依赖包,极大地提升了开发效率。此外,UV 还提供了项目初始化和依赖锁定等功能,使其在功能上与 Pipenv 相当,但在性能上更具优势。