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

使用 uv管理 Python 虚拟环境:比conda更快、更轻量的现代方案

文章目录

    • 什么是 `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.lryc.cn/news/624952.html

相关文章:

  • 保姆级教学:使用 Jenkins 部署前端项目(2025 年最新版)
  • 知识蒸馏 Jensen-Shannon散度
  • Vue3 全新特性 defineModel 深度解析
  • [Oracle数据库] Oracle 进阶应用
  • BPO(Business Process Optimization,业务流程优化)
  • 信创产业:从技术突围到生态重构的强国之路
  • redis持久化机制:RDB和AOF
  • 手机视频怎么提取音频?3步转成MP3,超简单!
  • 十年回望:Vue 与 React 的设计哲学、演进轨迹与生态博弈
  • PLC 控制系统中 PCB 板的选型与设计要点
  • 申请免费的SSL证书,到期一键续签
  • 深入浅出决策树
  • python学习DAY45打卡
  • JMeter与大模型融合应用之构建AI智能体:评审性能测试脚本
  • Nodejs学习
  • 基于ssm jsp中学校园网站源码和答辩PPT论文
  • 视觉语言导航(11)——预训练范式 4.1
  • 封装、继承、多态的含义及其项目应用
  • 机器人技术核心模块与前沿趋势总结
  • TikTok墨西哥POP店今日正式开放!0佣金+流量扶持+5店开放
  • PG靶机 - Bratarina
  • C# NX二次开发:字符串控件StringBlock讲解
  • Pandas 中常用的统计计算、排序、分组聚合
  • plantsimulation知识点25.8.18-从一个RGV到另一台RGV,工件长度和宽度方向互换
  • 【牛客刷题】计算1到n最低位1代表的数字之和
  • Layui COP证书管理系统
  • 《Image Classification with Classic and Deep Learning Techniques》复现
  • 吴恩达 Machine Learning(Class 1)
  • cross-env 与 @nestjs/config 的对比分析
  • 小杰机械视觉(one day)——基础阶段结束,进入机械学习阶段。