Python包管理工具之uv的使用详细指南

 更新时间:2026年01月08日 10:01:12   作者:Asia-Lee  
uv 是一个新兴的 Python 包管理工具,它旨在提供比 pip 和 poetry 更快、更现代的依赖管理体验,下面小编就和大家详细介绍一下uv的具体使用吧

uv 是一个新兴的 Python 包管理工具,它旨在提供比 pippoetry 更快、更现代的依赖管理体验。uvCharles Murphy 开发,基于 Rust 构建,具有极高的性能和兼容性,支持标准的 requirements.txt 文件以及 pyproject.toml 中的依赖声明。

一、uv 的特点

特点描述
极速安装使用 Rust 编写,依赖解析速度远超 pip 和 Poetry
安全性支持签名包验证(PEP 458)
支持多种格式兼容 wheels、sdists、editable installs
虚拟环境管理自动创建和管理虚拟环境
依赖锁定自动生成 uv.lock 文件确保可重复构建
多种配置方式支持 requirements.txt、pyproject.toml 等
跨平台支持 macOS、Linux、Windows

二、安装 uv

使用官方推荐方式(适用于大多数用户)

# macOS / Linux 用户使用以下命令安装
curl -Ls https://install.uv.rs | sh

安装后会将 uv 添加到你的 PATH 中。

使用 pip 安装(Python >= 3.8)

pip install uv

使用 conda/mamba 安装(Conda 用户)

conda install -c conda-forge uv

三、基本使用方法

1. 初始化项目并创建虚拟环境

mkdir myproject && cd myproject
uv venv
source .venv/bin/activate  # Windows: .venv\Scripts\activate

uv venv 会自动在当前目录下创建 .venv 虚拟环境。

2. 安装依赖

使用 requirements.txt

uv pip install -r requirements.txt

安装单个包

uv pip install requests

安装开发依赖

uv pip install pytest --dev

注意:目前 --dev 仅在使用 pyproject.toml 时有效。

3. 生成依赖文件

uv pip freeze > requirements.txt

或使用:

uv lock

这会生成 uv.lock 文件,用于精确锁定依赖版本。

4. 使用 pyproject.toml 管理依赖

你可以创建一个 pyproject.toml 来定义项目依赖:

[project]
name = "myapp"
version = "0.1.0"
dependencies = [
    "requests",
    "fastapi>=0.68.0,<0.70.0"
]

[build-system]
requires = ["setuptools>=42"]
build-backend = "setuptools.build_meta"

然后执行:

uv sync

这会根据 pyproject.toml 安装依赖,并自动生成 uv.lock 文件。

5. 升级依赖

uv pip upgrade requests

升级所有依赖:

uv pip upgrade --all

6. 删除依赖

uv pip uninstall requests

四、高级功能

1. 可重复构建(Reproducibility)

通过 uv.lock 文件可以保证不同机器上的依赖完全一致:

uv sync

该命令会严格按照 uv.lock 中的版本安装依赖。

2. 支持编辑模式(Editable Installs)

uv pip install -e .

适合本地开发调试。

3. 镜像源设置(Mirror Support)

uv pip install requests --index-url https://pypi.tuna.tsinghua.edu.cn/simple

支持国内镜像加速安装。

五、uv vs pip vs poetry 对比

功能uvpippoetry
依赖解析速度⚡⚡⚡⚡⚡
锁机制✅ (uv.lock)✅ (poetry.lock)
虚拟环境管理❌(需配合 venv)
编辑模式支持
依赖冲突检测
打包发布支持
镜像源支持
安装方式独立二进制、pip、condapippip、standalone installer

六、适用场景推荐

场景推荐
快速脚本、小项目✅ uv + requirements.txt
Web 后端开发✅ uv + pyproject.toml
数据科学、AI 模型训练✅ uv + Conda(如 Miniforge)
需要打包发布的库✅ Poetry
需要多 Python 版本切换✅ pyenv + uv

七、示例流程(从零开始)

# 创建项目目录
mkdir hello-uv && cd hello-uv

# 创建虚拟环境
uv venv

# 激活虚拟环境
source .venv/bin/activate

# 安装依赖
uv pip install requests

# 查看已安装包
uv pip list

# 冻结依赖
uv pip freeze > requirements.txt

# 生成锁文件
uv lock

# 后续只需运行:
uv sync

以上就是Python包管理工具之uv的使用详细指南的详细内容,更多关于Python uv包管理的资料请关注脚本之家其它相关文章!

相关文章

  • django中资源文件夹的引入及配置方法

    django中资源文件夹的引入及配置方法

    这篇文章主要介绍了django中资源文件夹的引入,主要包括静态资源文件夹的引入及媒体资源文件夹的引入,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-08-08
  • 详细解读tornado协程(coroutine)原理

    详细解读tornado协程(coroutine)原理

    这篇文章主要介绍了详细解读tornado协程(coroutine)原理,涉及协程定义,生成器和yield语义,Future对象,ioloop对象,函数装饰器coroutine等相关内容,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01
  • python实现批量注册网站用户的示例

    python实现批量注册网站用户的示例

    今天小编就为大家分享一篇python实现批量注册网站用户的示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-02-02
  • Python使用melt和pivot实现DataFrame格式转换

    Python使用melt和pivot实现DataFrame格式转换

    在数据处理与分析中,经常遇到数据需要进行格式转换的情况,例如将数据从宽表格式转换为长表格式,或将数据重新分组汇总,Pandas提供了丰富的reshape操作,尤其是melt和pivot这两个函数,使得DataFrame可以在宽表与长表之间高效转换,本文介绍的非常详细,需要的朋友可以参考下
    2025-01-01
  • 用pycharm开发django项目示例代码

    用pycharm开发django项目示例代码

    这篇文章主要介绍了用pycharm开发django项目示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-06-06
  • Python中执行调用JS的多种实现方法总结

    Python中执行调用JS的多种实现方法总结

    这篇文章主要给大家介绍了关于Python中执行调用JS的多种实现方法,在一些特殊的python应用场景下需要逆向执行javascript代码块或者.js文件,需要的朋友可以参考下
    2023-08-08
  • 基于Python实现将列表数据生成折线图

    基于Python实现将列表数据生成折线图

    这篇文章主要介绍了如何利用Python中的pandas库和matplotlib库,实现将列表数据生成折线图,文中的示例代码简洁易懂,需要的可以参考一下
    2022-03-03
  • 使用Python实现音频双通道分离

    使用Python实现音频双通道分离

    这篇文章主要介绍了使用Python实现音频双通道分离的方法,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
    2020-12-12
  • pycharm社区版安装django并创建一个简单项目的全过程

    pycharm社区版安装django并创建一个简单项目的全过程

    社区版的pycharm跟专业版的pycharm应用差别还是不太大,下面这篇文章主要给大家介绍了关于pycharm社区版安装django并创建一个简单项目的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-05-05
  • Python BautifulSoup 节点信息

    Python BautifulSoup 节点信息

    这篇文章主要介绍了Python BautifulSoup 节点信息,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-08-08

最新评论