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

Python包管理新篇章!解析uv工具的高效解决方案

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

✅ 一句话总结 uv 的特点:
uv 是一个快速、现代的 Python 包管理器,支持虚拟环境、依赖安装、lock 文件生成,兼容 pip + requirements.txt + pyproject.toml。

🛠️ 安装 uv
curl -Ls https://astral.sh/uv/install.sh | sh
或者通过 cargo(Rust 的包管理器)安装:
cargo install uv
安装完成后,使用 uv --version 验证。

🚀 常见用法教程

  1. 创建虚拟环境
    uv venv
    默认会在当前目录创建 .venv/ 文件夹。
    激活虚拟环境(Unix):
    source .venv/bin/activate

  2. 安装依赖

  • 使用 requirements.txt:
    uv pip install -r requirements.txt
  • 单独安装某个包:
    uv pip install requests flask
  • 将当前环境依赖保存到 requirements.txt:
    uv pip freeze > requirements.txt
  1. 使用 lock 文件
    uv pip compile requirements.txt
    会生成一个 requirements.lock 文件(包含精准的版本锁定信息,可复现安装)。
    uv pip install -r requirements.lock

  2. 支持 pyproject.toml(如 poetry 项目)
    如果你项目是基于 pyproject.toml 的结构(如 poetry 或 PDM 管理),也可以使用 uv:
    uv pip install -r pyproject.toml

🔍 文件说明
文件 说明
requirements.txt 传统的依赖列表(如 flask>=2.0
)用于快速安装,不锁定子依赖版本
requirements.lock uv pip compile
自动生成的锁文件,记录所有依赖和版本确保团队/部署环境一致
pyproject.toml 现代 Python 项目元数据文件(如项目名、版本、依赖)被 poetry、PDM、hatch 等现代工具采用

✅ 典型项目工作流(推荐)
uv .venv # 创建虚拟环境
source .venv/bin/activate
uv pip install -r requirements.txt
uv pip compile requirements.txt # 生成 lock 文件
uv pip compile requirements.txt --output requirements.lock # 需要重定向文件输出保存为文件
部署时:
uv pip install -r requirements.lock # 安装完全一致的依赖版本

⚡️ 为什么用 uv 而不是 pip?
功能 pip uv
安装速度 慢 🚀 极快(Rust 编写)
并行下载 ❌ 不支持 ✅ 支持
lock 文件支持 ❌ 需 pip-tools ✅ 内置
虚拟环境创建 需 venv ✅ 内置
多种格式支持 requirements.txt ✅ requirements.txt
, pyproject.toml
, lock

示例项目结构:
my_project/
├── app.py
├── requirements.txt
├── requirements.lock
└── .venv/

http://www.xdnf.cn/news/8104.html

相关文章:

  • 树 Part 8
  • 分贝计如何帮助改善睡眠环境
  • 【推理加速】TensorRT C++ 部署YOLO11全系模型
  • MySQL 单表与多表操作详解
  • Ubuntu Desktop 24.04 常用软件安装步骤
  • Ubuntu 新建用户
  • 体育直播网站如何实现实时数据
  • 卷积神经网络基础(十一)
  • 记录:RK3588无法显示开机logo问题
  • React 第四十六节 Router中useInRouterContext的使用详细介绍及注意事项
  • docker-安装部署于macOS11
  • windows安装clamav
  • 多模态大语言模型arxiv论文略读(八十九)
  • LeetCode 404.左叶子之和的递归求解:终止条件与递归逻辑的深度剖析
  • C++学习:六个月从基础到就业——多线程编程:并发容器与无锁编程
  • Intel oneAPI对OpenCL 的支持
  • 什么是特征工程?
  • Java异常分类与Spring事务回滚机制深度剖析
  • 电子电路:为什么会产生电流超前或者滞后于电压的情况?
  • 实战演练:天猫商品详情页动态数据 API 接口开发与调用
  • Nginx 部署前端项目dist文件到局域网然后ngrok部署到公网
  • 如何使用AI为WordPress生成图片
  • 通过Python 在Excel工作表中轻松插入行、列
  • 编译xiaozhi-esp32-server-java遇到的报错
  • 痉挛性斜颈护理指南:多维度守护颈部健康
  • 快速创建 Vue 3 项目
  • ss、lsof 命令
  • AI与.NET技术实操系列(六):实现图像分类模型的部署与调用
  • 密码学标准(Cryptography Standards)介绍
  • 用vue canvas画一个能源电表和设备的监测图