Python 第三方库:uv(极速包管理器)

uv 是一个基于 Rust 编写的现代化 Python 包管理工具,旨在替代 pip、venv、pip-tools 等多个工具,提供极速依赖解析、虚拟环境自动化、锁文件管理等一站式功能。

安装方式 1:使用 pip 安装(适用于测试)

nginx 复制代码
pip install uv

注意:此方式不包含 Rust 加速,性能较低,适合测试而非生产环境。

安装方式 2:推荐方式(官方脚本)

nginx 复制代码
# Linux 或 macOScurl -Ls https://astral.sh/uv/install.sh | bash
# Windows 用户建议使用 Powershell 安装(或手动下载可执行文件)irm https://astral.sh/uv/install.ps1 | iex

提示:

在 Windows 中安装完成后,请将 uv 可执行文件路径(如 C:\Users\<用户名>\.local\bin)加入环境变量 PATH

bash 复制代码
# CMDset Path=%USERPROFILE%\.local\bin;%PATH%
# Powershell$env:Path = "%USERPROFILE%\.local\bin;$env:Path"

安装方式 3:使用 Homebrew(macOS)

bash 复制代码
brew install astral-sh/uv/uv

安装完成后,可直接输入命令验证:

bash 复制代码
uv --help

常见应用场景:

(1)快速创建 Python 虚拟环境并安装依赖。

(2)构建现代工程项目并精确锁定依赖。

(3)在 CI/CD 场景中重现相同的开发环境。

(4)使用 uv run 无需激活环境即可运行脚本。

(5)安装开发依赖(dev-dependencies)。

(6)管理项目中使用的工具链(如 ruff、black 等)。

(7)构建和发布 Python 包。

◆ ◆

核心概念

1、声明式依赖管理

使用 pyproject.toml 声明依赖。

2、锁文件机制

生成 uv.lock,完整记录依赖版本及子依赖。

3、自动虚拟环境

无需手动建 .venv,uv 自动处理。

4、隔离执行环境

运行脚本时自动启用项目虚拟环境。

5、高速依赖解析

基于 Rust 实现,比 pip 快数倍。

6、工具安装隔离

使用 uv tool 安装命令行工具而不污染全局。

◆ ◆

基本用法

1、初始化项目

cs 复制代码
uv init

生成 pyproject.toml,用于声明依赖。

2、添加依赖(自动锁定)

cs 复制代码
uv add requests

自动写入 pyproject.toml 与 uv.lock。

说明:

上述命令以添加 Request 第三方库为例。

3、同步安装依赖

bash 复制代码
uv sync

根据锁文件同步所有依赖,默认自动使用 .venv 或 .uv 目录。

4、安装开发依赖

sql 复制代码
uv add --dev pytest

5、移除依赖

cs 复制代码
uv remove requests

6、执行脚本(无需手动激活环境)

nginx 复制代码
uv run python example.py

7、全局安装依赖(不推荐)

css 复制代码
uv pip install requests --system

◆ ◆

uv 命令解释

项目与依赖管理相关

uv run

在项目环境中运行命令或脚本。

nginx 复制代码
uv run python example.py

uv init

初始化 pyproject.toml,创建项目配置。

uv add

向项目中添加依赖包并更新 lock 文件。

cs 复制代码
uv add requests

uv remove

从项目中移除指定依赖包。

cs 复制代码
uv remove requests

uv version

查看或修改项目版本号。

uv sync

安装锁定依赖到本地虚拟环境。

uv lock

仅更新 uv.lock,不安装依赖。

uv export

导出 uv.lock 为其他格式,兼容 pip。

javascript 复制代码
uv export --format=requirements.txt

uv tree

查看依赖树结构(含子依赖)。

Python 与工具链管理

uv tool

安装并运行 Python 命令行工具,工具即装即用,无需创建虚拟环境,也不会污染全局环境。

nginx 复制代码
uv tool install ruff       # 安装 ruff 工具
uv tool run ruff check .   # 执行 ruff 检查当前目录

uv python

安装指定版本 Python(需配置 Python 镜像)。

apache 复制代码
uv python install 3.13

uv pip

提供兼容 pip 命令的接口,用于包管理。

nginx 复制代码
uv pip install numpy  #使用 pip 风格命令安装包uv pip freeze    # 冻结当前环境依赖

uv venv

创建新的虚拟环境。

nginx 复制代码
uv venv myvenv

构建与发布相关

uv build

构建项目为分发包(wheel、sdist)。

uv publish

发布包到 PyPI。

其他工具

uv cache

管理 uv 的缓存。

nginx 复制代码
uv cache clean    # 查看缓存内容
uv cache clean    # 清理缓存

uv self

管理 uv 自身(如升级 uv)。

nginx 复制代码
uv self update

uv help

显示帮助文档。

bash 复制代码
uv help add

◆ ◆

补充说明

1、无需激活虚拟环境

所有命令默认识别项目路径并自动进入虚拟环境,不再需要 source venv/bin/activate 或 .venv\Scripts\activate。

2、锁文件作用

pyproject.toml 表示"我想要哪些依赖"。

uv.lock 表示"我实际使用的完整依赖"。

适用于部署与 CI 场景。

3、uv 与 pip 的区别

(1)uv 不依赖 pip,而是自带依赖解析与安装逻辑。

(2)兼容 pip 命令,用法平滑迁移。

(3)安装速度远胜 pip。

4、在 GitHub Actions 中使用 uv

bash 复制代码
- name: Install uv  run: curl -Ls https://astral.sh/uv/install.sh | bash
- name: Install dependencies  run: uv sync

5、参考链接

官方网站:https://astral.sh/blog/uv/

GitHub 项目:https://github.com/astral-sh/uv

"点赞有美意,赞赏是鼓励"

相关推荐
墨理学AI6 小时前
一文学会一点python数据分析-小白原地进阶(mysql 安装 - mysql - python 数据分析 - 学习阶段梳理)
python·mysql·数据分析
CoderCodingNo6 小时前
【GESP】C++ 二级真题解析,[2025年12月]第一题环保能量球
开发语言·c++·算法
数研小生6 小时前
亚马逊商品列表API详解
前端·数据库·python·pandas
独好紫罗兰6 小时前
对python的再认识-基于数据结构进行-a005-元组-CRUD
开发语言·数据结构·python
chilavert3186 小时前
技术演进中的开发沉思-356:重排序(中)
java·开发语言
jianghua0016 小时前
Python中的简单爬虫
爬虫·python·信息可视化
devmoon6 小时前
为 Pallet 搭建最小化 Mock Runtime 并编写单元测试环境
开发语言·单元测试·区块链·智能合约·polkadot
喵手7 小时前
Python爬虫实战:针对Python官网,精准提取出每一个历史版本的版本号、发布日期以及对应的文档/详情页链接等信息,并最终清洗为标准化的CSV文件!
爬虫·python·爬虫实战·零基础python爬虫教学·python官方数据采集·采集历史版本版本号等信息·导出csv文件
Coder_Boy_7 小时前
Java开发者破局指南:跳出内卷,借AI赋能,搭建系统化知识体系
java·开发语言·人工智能·spring boot·后端·spring
databook7 小时前
像搭积木一样思考:数据科学中的“自下而上”之道
python·数据挖掘·数据分析