当前位置: 首页 > article >正文

Python 依赖包管理工具: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

在这里插入图片描述

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和uv.lock

在这里插入图片描述

2.4 安装依赖

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

    uv sync
    

    在这里插入图片描述

  • 添加一个或多个依赖:

    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 的对比

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

总结

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


http://www.kler.cn/a/559561.html

相关文章:

  • AI(14)-prompt
  • scrapy pipelines过滤重复数据
  • FPGA中利用fifo时钟域转换---慢时钟域转快时钟域
  • 三级分类bug解决
  • YOLOv11-ultralytics-8.3.67部分代码阅读笔记-loaders.py
  • nextjs项目搭建——头部导航
  • 如何使用Python快速开发一个带管理系统界面的网站-解析方案
  • 【DeepSeek-R1背后的技术】系列十一:RAG原理介绍和本地部署(DeepSeek+RAGFlow构建个人知识库)
  • 游戏开发 游戏项目介绍
  • 深入解析浏览器渲染全流程:从URL输入到页面渲染的底层原理与性能优化(附实战代码)
  • seacms V9 SQL报错注入
  • Obsidian·Copilot 插件配置(让AI根据Obsidian笔记内容进行对话)
  • 【GPU驱动】OpenGLES图形管线渲染机制
  • PHP脚本示例
  • 【CSS】---- CSS 变量,实现样式和动画函数复用
  • 一种简单有效的分析qnx+android智能座舱项目中的画面闪烁的方法(8155平台)
  • vscode无法预览Markdown在线图片链接
  • 跟着李沐老师学习深度学习(十三)
  • 国产芯片汽车气压表pcba方案
  • AI学习之-阿里天池