【uv】Python包管理器uv安装和应用

一、 uv介绍

  • uv 是用 Rust 编写的,其依赖解析和安装速度比 pip 快 10 到 100 倍。它支持并发下载、智能缓存和预编译二进制文件的优先选择。这意味着你的 CI/CD 流水线构建时间可以从几分钟缩短到几秒钟,极大地提升了开发和运维效率。

  • uv 通过 uv.lock 或 requirements.lock 文件精确锁定每一个直接和传递依赖的版本号以及其内容的哈希值。只要使用这个锁定文件进行安装(uv pip install -r requirements.lock),就能保证在任何机器、任何时间点安装的依赖树都是完全一致的。这对于生产环境的稳定性和可预测性至关重要。

  • uv 会对下载的每个包进行严格的哈希校验(SHA-256)。如果网络传输过程中数据损坏,或者仓库中的包被恶意篡改,uv 会立即检测到并报错,防止有问题的代码进入生产环境。

  • uv 拥有更先进的依赖解析算法,能够更快、更准确地找到满足所有约束的依赖组合,并提供清晰的错误报告,帮助你快速定位和解决问题。

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

uv文档地址:https://docs.astral.sh/uv/

二、uv安装

1)安装方式

三、 uv使用

1)开发项目



  • 项目创建: 使用uv init命令初始化新项目,如uv init ai-agent-test会创建项目目录结构。
  • 依赖管理:
    • uv add添加依赖(如uv add pyyaml)
    • uv remove移除依赖
    • uv sync同步项目依赖
  • 环境隔离: 会在项目目录下创建.venv文件夹管理Python环境,与其他项目完全隔离
  • 镜像源配置: 在pyproject.toml中添加\[tool.uv.index]配置项,设置url为阿里云镜像源https://mirrors.aliyun.com/pypi/simple/

\[tool.uv.index\]

url = "https://mirrors.aliyun.com/pypi/simple/"

default = true

  • 依赖记录: 安装的依赖会自动添加到dependencies列表中,如"pyyaml>=6.0.3"

    uv add pyyaml

2)特征

  • 项目级管理: 类似前端的package.json,使用pyproject.toml管理项目依赖。
  • 版本锁定: 通过uv lock可以创建依赖的lock文件确保版本一致性。
  • 依赖树查看: 使用uv tree可以查看项目的完整依赖树结构。
  • 构建发布: 支持uv build构建项目分发包和uv publish发布到包索引。
  • 依赖隔离: 安装的依赖库存储在项目目录下的.venv文件夹中,不会影响其他项目。
  • 版本灵活性: 不同项目可以使用同一依赖库的不同版本,避免全局升级导致的兼容性问题。
相关推荐
小小张说故事3 分钟前
Python 的函数调用到底贵在哪?拆开一次 call:51 纳秒栈帧与 *args 的 40 纳秒罚单
python
2401_8858850435 分钟前
国际语音C#接口怎么写?.NET环境下实现国际语音验证码批量下发
开发语言·c#·.net
程序猿乐锅1 小时前
【从0-1学习Python | 第七篇】Python 面向对象基础
开发语言·笔记·后端·python·学习·1024程序员节
Wang's Blog1 小时前
Java 项目实战: 交友项目 - 查询圈子个人动态:查询我的动态需求分析
java·开发语言·交友
lzqrzpt1 小时前
太阳能控制器选型要点:电路工艺与工程适配技术解析
python·1024程序员节
凯瑟琳.奥古斯特1 小时前
力扣1016高效解法:剪枝优化技巧
开发语言·c++·算法·leetcode·职场和发展
databook2 小时前
时间序列数据中,如何找出缺失值
python·数据分析
坤坤子吖2 小时前
C++继承:友元、静态成员、多继承与组合
开发语言·c++·笔记·学习·1024程序员节
技术小甜甜2 小时前
【Cursor】Skill 被标黄色警告,怎么改成合格的 SKILL.md
开发语言·javascript·ai编程·cursor·1024程序员节·ai agent·skills
小小龙学IT3 小时前
Python Polars 高性能数据处理引擎深度解析
开发语言·python·rust·1024程序员节