文章目录

    • 什么是 `uv`?
    • 安装 `uv`
      • 在线安装(推荐)
        • Windows 系统
        • Linux / macOS 系统
      • 离线安装
        • 步骤 1:获取二进制包
        • 步骤 2:解压并移动到可执行路径
        • 步骤 3:设置环境变量
        • 验证安装
    • 创建并激活虚拟环境
      • 创建虚拟环境
        • 输出示例(Windows):
        • 输出示例(Linux/macOS):
      • 激活虚拟环境
        • Windows:
        • Linux/macOS:
    • `uv` vs `conda`:谁更胜一筹?
    • 适用场景建议
      • 选择 `uv` 的场景:
      • 选择 `conda` 的场景:
    • 总结
    • 参考资源

在 Python 开发中,虚拟环境(Virtual Environment)是管理依赖和项目隔离的核心工具。传统的 venvpip 在工程效率上存在诸多痛点,而 conda 虽然功能强大,但其跨语言特性和庞大的体积并非所有场景都需要。今天,我们介绍一个全新的 Python 工具——uv,它结合了 Rust 语言的性能优势和现代包管理理念,让 Python 开发更高效、更简洁。


什么是 uv

uv 是由 Astral 开发的 Python 包管理器和虚拟环境管理工具,用 Rust 编写,专注于 速度轻量化。相比 condauv 的核心优势在于:

  • 极致速度:依赖解析和包安装速度比 pip 快 10-100 倍。
  • 纯 Python 生态支持:无缝对接 PyPI 和 pyproject.toml
  • 轻量级隔离:虚拟环境体积小,启动秒级完成。
  • 现代化命令设计:命令简洁直观,如 uv venvuv add 等。

安装 uv

在线安装(推荐)

Windows 系统
# 使用 PowerShell 安装 uv
powershell -ExecutionPolicy Bypass -c "irm https://astral.sh/uv/install.ps1 | iex"

注意:安装后需手动添加环境变量(路径因人而异,按提示操作):

$env:Path = "C:\Users\<用户名>\.local\bin;$env:Path"
Linux / macOS 系统
# 使用 curl 安装(推荐)
curl -LsSf https://astral.sh/uv/install.sh | sh# 或使用 wget 安装
wget -qO- https://astral.sh/uv/install.sh | sh

验证安装

uv --version

离线安装

步骤 1:获取二进制包

从 GitHub Releases 下载对应平台的离线包,例如:

uv-x86_64-unknown-linux-gnu.tar.gz
步骤 2:解压并移动到可执行路径
# 解压
tar -zxvf uv-x86_64-unknown-linux-gnu.tar.gz# 移动到 ~/.local/bin
sudo mv uv uvx ~/.local/bin/
步骤 3:设置环境变量
# 临时生效
export PATH="$HOME/.local/bin:$PATH"# 永久生效(添加到 ~/.bashrc 或 ~/.zshrc)
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
验证安装
uv --version


创建并激活虚拟环境

创建虚拟环境

# 创建名为 rag 的虚拟环境,使用 Python 3.12.7
uv venv rag --python 3.12.7
输出示例(Windows):
uv venv rag --python 3.12.7
Using CPython 3.12.7
Creating virtual environment at: rag
Activate with: rag\Scripts\activate
输出示例(Linux/macOS):
$ uv venv rag -p 3.12.7
Using CPython 3.12.7
Creating virtual environment at: rag
Activate with: source rag/bin/activate

激活虚拟环境

Windows:
rag\Scripts\activate
Linux/macOS:
source rag/bin/activate

uv vs conda:谁更胜一筹?

对比维度uv (astral-sh/uv)conda (Anaconda/miniconda)
核心定位Python 专属包管理器 + 环境管理器(Rust 开发)跨语言包管理器 + 环境管理器(支持多编程语言)
速度优势显著:Rust 编译带来极致速度,环境创建/删除秒级完成速度较慢:依赖解析和安装耗时久,尤其复杂环境
语言支持仅支持 Python,专注 PyPI 生态跨语言支持:Python、R、C++、Fortran 等
依赖处理轻量:依赖 PyPI,优先处理纯 Python 包;复杂二进制依赖需额外配置二进制依赖处理强:自带 conda-forge,可直接安装预编译科学计算依赖(如 CUDA/MKL 版本的 PyTorch)
环境隔离轻量级隔离:共享系统底层库,环境体积小深度隔离:隔离非 Python 依赖(如 C 库),兼容性高
生态与兼容性高兼容:无缝对接 pip 和 PyPI,支持 pyproject.toml生态成熟:conda-forge 仓库包数量多,适合数据科学场景
使用门槛简单:命令简洁(如 uv venvuv add),适合 Python 开发者快速上手稍高:需理解频道、二进制依赖等概念

适用场景建议

选择 uv 的场景:

  • 纯 Python 开发:无需跨语言依赖。
  • 追求极致速度:频繁创建环境、安装包。
  • 现代 Python 项目:需与 pip/poetry 协作。

选择 conda 的场景:

  • 跨语言开发:如 Python+R 或需要 CUDA/MKL 支持。
  • 科学计算/机器学习:需预编译二进制依赖。
  • 深度环境隔离:如多版本 CUDA 共存。

总结

uv 是 Python 开发者的新宠,它以 Rust 的性能优势现代化设计,解决了传统工具的痛点。如果你专注于 Python 生态,追求速度和轻量化,uv 是理想选择;而 conda 仍然是科学计算领域的全能选手。根据项目需求选择合适的工具,才能事半功倍!


参考资源

  • uv GitHub 项目
  • uv 官方文档
  • Conda 官方文档

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

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

相关文章

课堂记忆项目开发日志

课堂记忆项目开发日志 日期: 2025年8月18日 1. 基础实现 项目目标: 创建一个动态、美观的“课堂记忆”页面,展示教师信息、教学成果、学生反馈、未来计划、教学成就和教学金句。 实现交互功能,包括按钮点击展开内容、图片点击弹出详细信息、图表展示数据。 技术栈: HTML5 C…

蓝桥杯算法之搜索章 - 7

大家好&#xff0c;不同的时间&#xff0c;相同的地点&#xff01;又和大家见面了&#xff0c;接下来我将带来多源BFS的内容 通过多源BFS的学习&#xff0c;大家将对BFS理解更加深入&#xff01; lets go! 前言 通过前面内容的学习&#xff0c;大家肯定已经对于BFS有了一定理解…

onRequestHide at ORIGIN_CLIENT reason HIDE_SOFT_INPUT fromUser false

这个错误日志 onRequestHide at ORIGIN_CLIENT reason HIDE_SOFT_INPUT fromUser false 通常出现在 Android 平台的 WebView 或混合应用&#xff08;如 Cordova/Capacitor&#xff09;中&#xff0c;与软键盘&#xff08;Soft Input&#xff09;的隐藏行为有关。以下是可能的原…

用PaddleDetection套件训练自己的数据集,PP-YOLO-SOD训练全流程

文章目录官方资料ppyoloe 训练全流程环境配置与套件准备数据集准备与VOC格式ppdet的要求标签列表txt文件生成脚本数据集配置预训练权重模型配置ppyoloe训练命令ppyoloe评估命令ppyoloe推理命令与可视化结果ppyoloe-SOD 训练全流程预训练权重模型配置ppyoloe训练命令官方资料 P…

Candle用 Rust 打造“小而快”的机器学习栈

1. 为什么是 Candle&#xff1f;&#xff08;三条硬理由&#xff09;Serverless & 轻量部署 传统 Python 生态在函数冷启动/GIL/体积上常见掣肘。Candle 是纯 Rust 二进制&#xff0c;可将推理程序打包成一个小体积可执行文件&#xff0c;非常适合边缘侧 & Serverless。…

小波卷积YYDS!小波变换+CNN创新结合

2025深度学习发论文&模型涨点之——小波卷积小波卷积通过先将输入信号或图像进行小波分解&#xff0c;得到不同尺度的子带信号&#xff0c;然后在每个子带信号上应用卷积操作来提取局部特征&#xff0c;最后通过逆小波变换将经过卷积处理的子带信号重构为最终的输出信号或图…

高性价比的5G专网设备,助力企业降本增效

在数字化转型的浪潮中&#xff0c;企业亟需兼顾先进技术与投入成本的平衡。作为全球领先的核心网供应商&#xff0c;IPLOOK始终坚持以客户为中心&#xff0c;推出高性价比的5G行业专网设备&#xff0c;帮助企业在保障性能的同时&#xff0c;有效降低网络建设与运维成本。 高性…

可编辑150页PPT | 某制造集团产业数字化转型规划方案

推荐摘要&#xff1a;某制造集团产业数字化转型规划方案&#xff0c;直击传统制造向智能智造跃迁的核心命题。该集团作为装备制造领域龙头&#xff0c;业务横跨工程机械、农业机械、能源装备三大板块&#xff0c;拥有12个生产基地、400余家供应链企业&#xff0c;但面临设备联网…

Kafka 面试题及详细答案100道(11-22)-- 核心机制1

《前后端面试题》专栏集合了前后端各个知识模块的面试题,包括html,javascript,css,vue,react,java,Openlayers,leaflet,cesium,mapboxGL,threejs,nodejs,mangoDB,SQL,Linux… 。 前后端面试题-专栏总目录 文章目录 一、本文面试题目录 11. 什么是Kafka的分区(P…

PHP反序列化的CTF题目环境和做题复现第1集

1 通过post参数提交反序列信息 2 题目 http://192.168.1.8/fxl1/fxl1.php <?php highlight_file(__FILE__);class ezUnserialize{public $key;public function __destruct(){if($this->key "FLAG"){include(flag.php);echo $flag;}} } unserialize($_POST[a…

[论文阅读] 软件工程工具 | EVOSCAT可视化工具如何重塑软件演化研究

EVOSCAT可视化工具如何重塑软件演化研究 论文信息 原标题&#xff1a;EVOSCAT: Exploring Software Change Dynamics in Large-Scale Historical Datasets主要作者及机构&#xff1a; Souhaila Serbout&#xff08;University of Zurich, Zurich, Switzerland&#xff09;Diana…

【入门级-算法-6、排序算法:排序的基本概念冒泡排序】

一、排序概念&#xff1a;是将一组数据按照特定规则重新排列的过程&#xff0c;是计算机科学中最基础且重要的算法之一。 二、排序的基本要素 排序键(Key)&#xff1a;是排序过程中用于比较和确定元素顺序的特定数据项或数据属性。 稳定性&#xff1a;排序过程中&#xff0c;相…

搭建私有Claude体验平台:Open WebUI + Anthropic API + Trojan完整部署指南

言简意赅的讲解Open WebUI Anthropic API Trojan解决的痛点 身边的小伙伴们都想体验Claude&#xff0c;但直接访问Anthropic API存在网络连接问题。本文记录了我如何通过Docker部署Open WebUI&#xff0c;结合网络代理和Anthropic Manifold Pipe&#xff0c;为团队搭建了一个…

Hadoop技术栈(一)hadoop搭建与HDFS常用命令

概念 hadoop是一个大数据的分布式存储&#xff0c;调度&#xff0c;计算框架。也可以说是一个生态圈&#xff0c;包含很多技术&#xff1a;Hive、Hbase、Flume、Kafka... Hadoop的优点 Hadoop具有存储和处理数据能力的高可靠性。 Hadoop通过可用的计算机集群分配数据&#xf…

electron之win/mac通知免打扰

目录 系统区别 win&#xff1a;不支持桌面通知&#xff0c;使用气泡显示 mac&#xff1a;有镜像/共享屏幕时 通知免打扰设置 代码 Vuex&#xff1a;免打扰状态 src/store/App/mutations.ts src/store/App/state.ts src/views/miracast/index.vue Util 【可选】src/ut…

为什么Integer缓存-128 ~ 127

背景 面试题, 相关问题的考察. 题目大概是, 包装类型Integer 比较的时候 : -127 ~ 128 是否相等. 其他是否相等? 原理比较的是地址. 如果是不同的对象, 那么就不相等. 实践 下面是几个简单实践. 全部新建对象 解释: 新建对象后, 地址不同, 所以都是false不新建对象 暂时的理解…

微软Wasm学习-创建一个最简单的c#WebAssembly测试工程

要创建一个最简单的微软 WebAssembly&#xff08;Wasm&#xff09;测试工程&#xff0c;最直接的方式是使用 Blazor WebAssembly&#xff0c;这是微软官方推荐的 WebAssembly 开发框架。下面是创建和运行最简单 Blazor WebAssembly 项目的步骤&#xff1a; 相关&#xff1a;微…

通过 GitHub520 项目自动获取最新 Hosts 配置,无需手动查询 IP。

操作步骤&#xff1a;打开终端Command 空格 聚焦搜索“终端”&#xff0c;打开应用。执行一键脚本复制以下命令粘贴到终端运行&#xff08;需输入密码授权&#xff09;&#xff1a;bashsed -i "" "/# GitHub520 Host Start/,/# Github520 Host End/d" /et…

C# 目录与文件操作笔记

一、基本概念1. 数据存储方式对比存储方式适用场景特点数据库存储大量、关系复杂、有序的数据结构化强&#xff0c;支持复杂查询和事务文件存储少量、关系简单的数据&#xff08;如日志&#xff09;操作简便&#xff0c;可存储于任意介质2. 文件与流文件&#xff1a;存储在磁盘…

docker部署flask并迁移至内网

需要直接使用的可以使用下面的链接&#xff1a; 通过网盘分享的文件&#xff1a;docker_flask.tar 链接: https://pan.baidu.com/s/163ocPFw8cqfXgVXeejv36g?pwdqxqm 提取码: qxqm 来自百度网盘超级会员v6的分享 外网部署docker版flask 目录结构 ./miniconda-docker/ ├── d…