UV-Python包高效管理工具

介绍

uv 是一个 极快的 Python 包管理器,兼容 pip / virtualenv / pyproject.toml,专注于:

• 🚀 极速安装依赖(比 pip 快几十倍)

• 📦 支持 requirements.txt 和 pyproject.toml

• 🧱 内置虚拟环境(不依赖 venv)

• 🔒 完整的依赖锁定机制(支持 uv pip compile)

• 💡 使用 Rust 编写,性能强悍

功能pipuv
安装速度超快(基于 Rust)
支持锁文件✅ uv pip compile
创建虚拟环境需手动✅ 自动内置
多平台一致性一般✅ 通过 .lock 保证
安装缓存优化一般✅ 强缓存系统

使用方法

安装说明

# 安装 uv
curl -Ls https://astral.sh/uv/install.sh | bash
按照环境位置
vim ~/.zshrc
export PATH="$HOME/.local/bin:$PATH"
source ~/.zshrc
which uv     # 应该返回 /opt/homebrew/bin/uv 或 ~/.local/bin/uv
uv --version
# 安装依赖(自动创建虚拟环境)
uv pip install -r requirements.txt# 添加依赖
uv pip install requests# 升级依赖
uv pip install --upgrade requests# 卸载依赖
uv pip uninstall requests# 生成锁文件
uv pip compile requirements.in > requirements.lock.txt

如下所示:

(.venv) ➜  ai_tools_show git:(main) uv --version
uv 0.6.9 (3d9460278 2025-03-20)
(.venv) ➜  ai_tools_show git:(main) uv venv
Using CPython 3.12.4 interpreter at: /Users/jacinlee/miniconda3/bin/python
Creating virtual environment at: .venv
Activate with: source .venv/bin/activate
(.venv) ➜  ai_tools_show git:(main) 

uv 是通过 当前终端的 python 或 python3 路径 来决定使用哪个解释器的。也就是说它会执行:

which python

在你的终端当前环境中,这个指向的是 Anaconda 的 Python。

用 uv 创建或激活一个 Python 3.12 的虚拟环境,并让它成为这个项目的默认环境。下面是你的完整操作流程:

which -a python3.12

uv 会使用你指定的 Python 版本创建虚拟环境。命令如下:

uv venv --python=python3.12

或者显式:

uv venv --python=/usr/local/bin/python3.12

激活:

source .venv/bin/activate

如果一个项目已经有了requirements.txt了,那么在不破坏已有项目的情况下迁移到 uv + pyproject.toml,可以按下面步骤平滑过渡

uv init --python=3.12>>>>>输出
Initialized project `ai-tools-show`

然后生成了两个文件:分别是.python-version pyproject.toml文件了

uv pip install -r pyproject.tomluv pip install fastapi --add 
自动写入 pyproject.toml 的 [project.dependencies] 区块或者:
# 第一步:安装
uv add -r requirements.txtuv add fastapi# 第二步:同步写入 pyproject.toml
uv pip freeze --add
命令作用
uv pip install -r requirements.txt只安装依赖,不写入 pyproject.toml
uv add fastapi安装并写入 pyproject.toml
uv add -r requirements.txt从 requirements.txt 添加所有依赖到 pyproject.toml
uv pip freeze查看当前环境依赖(不写入文件)

解释器共享,但 依赖隔离

这和 Java 的 Maven、Node.js 的 npm/yarn 是一样的逻辑:
• 全局只安装一次 Java / Node 解释器
• 每个项目单独维护自己的 pom.xml 或 package.json,从而下载独立依赖

Python 生态 默认推荐的是 venv/virtualenv,也就是每个项目一个 Python + 依赖。

不过你可以选择 只共享 Python 解释器,依赖用 .venv 隔离:

# 使用系统安装的 Python3.12,但不复制它,仅链接用
uv venv --python=python3.12

引用系统安装的 Python,而不是复制它。这样多个项目可以共用 interpreter,只隔离依赖(site-packages)。

你可以通过这个命令验证解释器路径:

which python
# 或者
python -c "import sys; print(sys.executable)"
方案是否共享解释器是否隔离依赖说明
uv venv --python=python3.12✅ 是(可指定)✅ 是推荐 ✅
python3.12 -m venv .venv✅ 是✅ 是标准 Python 工具
不用 venv,直接 pip install✅ 是❌ 否不推荐 ❌
Java/Maven✅ 是✅ 是(按 .m2/repo)类似
Node/npm✅ 是✅ 是(按 node_modules)类似
工具本质作用谁开发的管理的内容
pipPython 官方包管理工具Python 官方PyPI 上的纯 Python 包
conda科学计算生态的包管理工具Anaconda Inc.Python + C依赖等混合包
uv新一代超快包管理工具Astral.shPyPI 包(兼容 pip)
对比项uvpipconda
📦 包源PyPIPyPIConda Forge / 默认 channel
🏃‍♂️ 安装速度🚀 极快(Rust 实现)中等较慢(依赖解算开销大)
🧠 依赖解决能力✅ 强(支持锁定)❌ 差(依赖冲突常见)✅ 强(可以混合 C 依赖)
🐍 虚拟环境管理✅ 内置 uv venv❌ 无(需配合 venv 使用)✅ 内置 conda env
🔐 锁文件支持✅ uv.lock❌ 无原生锁(需用 pip-tools)✅ environment.yml + reproducible
📁 依赖隔离✅ 每项目 .venv❌ 手动做(无自动隔离)✅ 自动(但体积大)
🧩 原生支持 C 库❌ 仅纯 Python❌ 需编译器 / wheels✅ 非常擅长(如 NumPy, pandas)
💡 初学友好✅ 简洁✅ 简洁❌ 学习曲线陡(路径管理复杂)
🔥 推荐场景🚀 Web/AI 项目,现代工程流📦 通用 Python 包管理🔬 科研环境(需 C/Fortran 库)
FastAPI、Web 开发uv快速、干净、现代依赖锁定,适配 venv,构建速度远超 pip
通用 Python 包管理pip够用,兼容性强,但需手动解决依赖冲突
科研、数值计算(如pandas)conda内置 C/FORTRAN 包,安装 NumPy、SciPy 更稳定
多项目/CI/CD 构建uv + rye支持锁文件、项目隔离、解释器管理,部署方便

依赖冲突

什么是“依赖冲突”?怎么发生的?

pip install A B
•	A 依赖 requests==2.26
•	B 依赖 requests>=2.28

这就冲突了 —— 你装不了两个版本的 requests,系统无法决定到底该装哪一个。

传统 pip 在这时会直接报错或装错版本,而 uv / poetry 等现代工具就能更智能地解决。

⛓️ 求解图算法优化更快找到符合所有 constraints 的版本组合
📦 全图解析不止解析你显式安装的库,还会分析它们的子依赖
✅ 严格锁定避免每次安装版本漂移(版本浮动)的
pipuv(或 poetry 等)
逐步解析安装全部构建依赖树后一起解析
安装中才发现冲突安装前就先解依赖,确认无误
无法锁定版本会生成精确版本锁文件 uv.lock

• ❌ pip 会冲突失败(或安装错版本)

• ✅ uv 会告诉你版本冲突,并给出冲突路径:

❗ Conflict: some-lib requires requests>=2.28, but you have requests==2.26.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/38004.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【算法学习计划】动态规划 -- 背包问题(01背包和完全背包)

目录 DP41 【模板】01背包 leetcode 416.分割等和子集 leetcode 494.目标和 leetcode 1049.最后一块石头的重量Ⅱ DP42 【模板】完全背包 leetcode 322.零钱兑换 leetcode 518.零钱兑换Ⅱ leetcode 279.完全平方数 今天,我们将通过 8 道题目,来带…

138. 随机链表的复制

题目: 给你一个长度为 n 的链表,每个节点包含一个额外增加的随机指针 random ,该指针可以指向链表中的任何节点或空节点。 构造这个链表的 深拷贝。 深拷贝应该正好由 n 个 全新 节点组成,其中每个新节点的值都设为其对应的原节…

网络HTTPS协议

Https HTTPS(Hypertext Transfer Protocol Secure)是 HTTP 协议的加密版本,它使用 SSL/TLS 协议来加密客户端和服务器之间的通信。具体来说: • 加密通信:在用户请求访问一个 HTTPS 网站时,客户端&#x…

19921 多重背包

19921 多重背包 ⭐️难度:中等 🌟考点:动态规划、背包问题 📖 📚 import java.util.Arrays; import java.util.LinkedList; import java.util.Queue; import java.util.Scanner;public class Main {static int N …

C/C++蓝桥杯算法真题打卡(Day5)

一、P8772 [蓝桥杯 2022 省 A] 求和 - 洛谷 算法代码&#xff1a; #include<bits/stdc.h> // 包含标准库中的所有头文件&#xff0c;方便编程 using namespace std; // 使用标准命名空间&#xff0c;避免每次调用标准库函数时都要加 std::int main() {int n; …

【大模型基础_毛玉仁】3.5 Prompt相关应用

目录 3.5 相关应用3.5.1 基于大语言模型的Agent3.5.2 数据合成3.5.3 Text-to-SQL3.5.4 GPTs 3.5 相关应用 Prompt工程应用广泛&#xff0c;能提升大语言模型处理基础及复杂任务的能力&#xff0c;在构建Agent、数据合成、Text-to-SQL转换和设计个性化GPTs等方面不可或缺。 . …

主成分分析PCA与奇异值分解SVD

线性代数 SVD 奇异值分解&#xff08;Singular Value Decomposition&#xff0c;简称 SVD&#xff09;是线性代数中的一种基本工具&#xff0c;它将任意一个 (m * n) 矩阵 (A) 分解成三个简单矩阵的乘积&#xff0c;即 其中&#xff1a; (U) 是一个 (m*m) 的正交&#xff08…

自主代理的摩尔定律:AI 的指数级革命

图像由 Gemini 生成 前言&#xff1a;AI 正在以超过摩尔定律的速度迅速提升其自主工作能力&#xff0c;研究显示&#xff0c;AI 能够可靠完成的任务时长正以每 7 个月翻一倍的速度增长。这种指数级的发展趋势意味着&#xff0c;AI 不再只是应对简单问答或短任务的工具&#xff…

气膜文化馆:打造沉浸式文娱新空间—轻空间

演唱会、展览、音乐剧……都能办&#xff1f; 当然&#xff01;气膜文化馆不仅适用于体育赛事&#xff0c;在文化娱乐方面同样大放异彩&#xff01; 声学优化&#xff0c;打造极致听觉体验 气膜文化馆采用专业声学设计&#xff0c;避免传统场馆的回声干扰&#xff0c;提供更清…

【数据标准】数据标准化框架体系-对象类数据标准

导读&#xff1a;对象类数据标准化框架通过统一数据定义、分类和标记&#xff0c;解决数据孤岛与不一致问题&#xff0c;支撑数据分析、AI应用与合规需求。企业需结合自身业务特性&#xff0c;灵活选择国际标准&#xff08;如ISO&#xff09;、行业规范或自建体系&#xff0c;并…

【江协科技STM32】软件SPI读写W25Q64芯片(学习笔记)

SPI通信协议及S为5Q64简介&#xff1a;【STM32】SPI通信协议&W25Q64Flash存储器芯片&#xff08;学习笔记&#xff09;-CSDN博客 STM32与W25Q64模块接线&#xff1a; SPI初始化&#xff1a; 片选SS、始终SCK、MOSI都是主机输出引脚&#xff0c;输出引脚配置为推挽输出&…

C 语 言 --- 扫 雷 游 戏(初 阶 版)

C 语 言 --- 扫 雷 游 戏 初 阶 版 代 码 全 貌 与 功 能 介 绍扫雷游戏的功能说明游 戏 效 果 展 示游 戏 代 码 详 解game.htest.cgame.c 总结 &#x1f4bb;作 者 简 介&#xff1a;曾 与 你 一 样 迷 茫&#xff0c;现 以 经 验 助 你 入 门 C 语 言 &#x1f4a1;个 人 主…

数据库基础知识

目录 一、什么是数据库&#xff1f; 二、基本使用方法 &#xff08;1&#xff09;启动服务器进程 &#xff08;2&#xff09;连接服务器 &#xff08;3&#xff09;基本sql语句 三、MySQL架构 四、SQL语句分类 五、存储引擎是什么 一、什么是数据库&#xff1f; 数据库…

在线生成自定义二维码

在线生成自定义二维码 1. 引言 二维码已成为现代互联网的重要工具&#xff0c;广泛应用于链接分享、支付、身份认证等场景。然而&#xff0c;很多在线二维码生成工具功能有限&#xff0c;难以满足个性化需求。如果你需要 自定义颜色、Logo、不同形状的二维码&#xff0c;那么…

DeepSeek处理多模态数据的技术要点和实现方式

DeepSeek具备处理多模态数据的能力&#xff0c;以下是相关技术要点和实现方式。 1. ‌多模态模型架构‌ ‌单流/双流网络‌&#xff1a;通过将文本和图像输入统一编码器&#xff08;单流&#xff09;或分别编码后交互&#xff08;双流&#xff09;实现模态融合‌。‌预训练模…

系统架构设计知识体系总结

1.技术选型 1.什么是技术选型&#xff1f; 技术选型是指评估和选择在项目或系统开发中使用的最合适的技术和工具的过程。这涉及考虑基于其能力、特性、与项目需求的兼容性、可扩展性、性能、维护和其他因素的各种可用选项。技术选型的目标是确定与项目目标相符合、能够有效解…

数智读书笔记系列022《算力网络-云网融合2.0时代的网络架构与关键技术》读书笔记

一、书籍核心价值与定位 1.1 书籍概述:中国联通研究院的权威之作 《算力网络 —— 云网融合 2.0 时代的网络架构与关键技术》由中国联通研究院算力网络攻关团队精心撰写,是业界首部系统性探讨云网融合 2.0 与算力网络的专著。在云网融合从 1.0 迈向 2.0 的关键节点,本书的…

知识图谱中NLP新技术

知识图谱与自然语言处理&#xff08;NLP&#xff09;的结合是当前人工智能领域的前沿方向&#xff0c;其技术发展呈现多维度融合与场景深化的特点。以下从核心技术突破、应用场景创新及未来趋势三个层面&#xff0c;系统梳理知识图谱中NLP的最新进展&#xff1a; 一、核心技术突…

ASP.NET Web的 Razor Pages应用,配置热重载,解决.NET Core MVC 页面在更改后不刷新

Razor Pages应用&#xff0c;修改页面查看修改效果&#xff0c;如果没有热重载&#xff0c;改一句话跑一次&#xff0c;这个活就没法干了。 1、VS2022中的NuGet中安装RuntimeCompilation Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation 需要配套你的.net sdk版本&#x…

DeepSeek(8):结合Kimi-PPT助手一键生成演示报告

1 生成内容 在Deepseek中生成内容&#xff1a; 帮我创建年度计划&#xff0c;描述《智能枕头》产品的如何在全国销售&#xff0c;计划切分到每个月。从而让我们的老板和团队对报告充满信息。输出的内容我需要放到ppt中进行展示。 使用Deepseek R1模型&#xff0c;如下&#x…