简介

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

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

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

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

1.安装

使用 pip 安装 UV:

pip install uv

在这里插入图片描述
检查当前安装的 uv 版本,可以在命令行中运行以下命令:

uv --version

在这里插入图片描述

2. 基本使用

2.1 创建虚拟环境

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

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

在这里插入图片描述

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

2.2 激活虚拟环境

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

.venv\Scripts\activate  # 在 Windows 上

在这里插入图片描述

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

在这里插入图片描述

2.3 初始化项目

uv init  # 生成pyproject.toml

在这里插入图片描述

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 文件用于锁定依赖版本。
    在这里插入图片描述

  • 添加一个或多个依赖:

    uv add pandas airtest
    

在这里插入图片描述

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

2.4 移除依赖

使用 remove 命令移除依赖包:

uv remove requests

2.5 查看已安装的包

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

uv pip list

在这里插入图片描述

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 相当,但在性能上更具优势。

Logo

欢迎加入西安开发者社区!我们致力于为西安地区的开发者提供学习、合作和成长的机会。参与我们的活动,与专家分享最新技术趋势,解决挑战,探索创新。加入我们,共同打造技术社区!

更多推荐