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

为什么用 uv 替代 pip, pixi 替代 conda?

为什么用 pixi 替代 conda?

  1. 速度:pixi 采用 Rust 实现,比使用 Python 实现的 conda 更快
  2. 原生支持多语言与系统工具
  3. 现代配置:pixi.toml
    • 比 environment.yml(YAML)更简洁、可读性强
    • 支持定义任务(tasks),替代 Makefile 或 shell 脚本:
      [tasks]train="python train.py"lint="ruff check ."
  4. 本地化环境管理
    • Conda 默认将所有环境集中存放在全局目录(如 ~/miniconda3/envs/),
    • 而 pixi 和 uv 则借鉴了 Rust/Cargo 的本地化理念,
    • 默认在项目根目录下创建隔离的环境(如 .pixi/ 或 .venv/),
    • 实现“每个项目自带运行时”,避免依赖冲突和全局污染。

为什么用 uv 替代 pip?

  1. 速度:uv 使用 Rust 编写,性能优越,安装依赖更快
  2. 一体化工具链:uv 集成了环境管理、依赖解析、锁定机制等功能,无需切换工具
    • 传统 Python 工作流常需多个工具:
      python-mvenv .venv# 创建环境source.venv/bin/activate# 激活pipinstall-rrequirements.txt# 安装pip freeze>requirements.lock# 锁定(不精确)
    • 而 uv 一条命令搞定:
      uv venv# 创建虚拟环境uv pipinstall-rrequirements.txt# 极速安装uv lock# 生成精确的 `uv.lock`(类似 `poetry.lock`)
  3. 依赖安装:
    • pip install 只会安装缺失的包,不会清理多余的残留,导致环境污染
    • 而 uv sync 会根据锁定文件uv.lock自动增删包,保持环境纯净
  4. 完全兼容现有生态
    • 支持 requirements.txt、pyproject.toml、setup.py 等标准格式。
    • 可直接替换项目中的 pip 命令,零迁移成本。
    • 生成的标准虚拟环境,与 IDE(VS Code、PyCharm)无缝集成。

Pixi

安装

# Linux/macOScurl-fsSLhttps://pixi.sh/install.sh|sh# Windowspowershell-ExecutionPolicyByPass-c"irm -useb https://pixi.sh/install.ps1 | iex"# 安装会自动把pixi添加到环境变量中,但是需要重启终端才能使用pixi命令pixi--version# 如果安装成功,会显示pixi的版本号

从头开始初始化一个项目

pixi init# ls -a# .gitattributes .gitignore pixi.toml

添加包

pixiaddwandb# 添加 Conda 包pixiadd--pypiwandb# 添加 PyPI 包

安装依赖

pixiinstall# 状态同步:根据 pixi.toml 自动增删pixi/envs/default中的依赖,保持环境纯净

运行脚本

pixi run python script.py

uv

安装

# Linux/macOScurl-fsSLhttps://astral.sh/uv/install.sh|sh# 安装会自动把uv添加到环境变量PATH中,但是需要重启终端才能使用uv命令# echo 'export PATH="$HOME/.local/bin:$PATH"' >> /root/.bashrc# source /root/.bashrc# Windowspowershell-ExecutionPolicyByPass-c"irm https://astral.sh/uv/install.ps1 | iex"# 安装会自动把uv添加到环境变量中,但是需要重启终端才能使用uv命令uv--version# 如果安装成功,会显示uv的版本号

从头开始初始化一个项目

uv init# ls -a# .git .gitignore .python-version README.md main.py pyproject.toml

添加包

uvaddwandb

安装依赖

uvsync# 状态同步:根据 project.toml 和 uv.lock 自动增删.venv/site-packages的依赖,保持环境纯净

运行脚本

uv run script.py

注:如果uv adduv sync速度慢,可以为项目更换国内镜像源加速,在 pyproject.toml 中添加如下配置:

[tool.uv] [[tool.uv.index]] name = "tsinghua" url = "https://pypi.tuna.tsinghua.edu.cn/simple/" default = true

选择使用哪个工具

uv进阶

uv cache prune# 只移除不再被任何项目引用的包,安全系数高uv cache clean# 会删光所有缓存,下次安装慢。uv cachedir# 查看 uv 当前的缓存目录mkdir-p/hy-tmp/.uv_cache# 先设置新缓存路径(避免清理后重新下载到老路径)echo'export UV_CACHE_DIR=/hy-tmp/.uv_cache'>>~/.bashrc# 永久设置环境变量grepUV_CACHE_DIR ~/.bashrc# 查看是否已写入 bashrcuv cache cleancd/hy-tmp/tadUV_LINK_MODE=copy uvsync# .venv是虚拟环境,Python包可以硬链接,但是非Python包(Torch、CV等)不能硬链接,所以还是会占用磁盘空间
http://www.jsqmd.com/news/1011832/

相关文章:

  • 从GRU到LSTM:为什么你的文本生成模型效果不好?可能是记忆单元没选对
  • 2026年消音器厂家推荐排行榜:PE烧结消声器、汽车座椅消声器、不锈钢消音器、气动消音器优质工厂! - 速递信息
  • MPC8245 ROM/Flash接口配置实战:从地址映射到时序调优
  • MPC823微处理器架构解析:PowerPC核心与通信处理器模块的协同设计
  • Windows系统文件BCP47Langs.dll文件丢失找不到问题解决
  • Mac Mouse Fix:彻底释放普通鼠标在macOS上的专业潜力
  • EdgeRemover终极指南:3分钟彻底卸载Microsoft Edge的完整解决方案
  • AutoDock-Vina分子对接:从零开始的完整实战指南
  • 嵌入式PowerPC e300核心:指令集、缓存与中断机制深度解析与实践
  • EHCI同步分裂事务调度与状态机:从TT原理到siTD实现
  • 如何一键隐藏Windows窗口到托盘:终极任务栏空间解放指南
  • 仿生蝴蝶型机器人设计23(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码
  • Sunshine游戏串流平台:打造个人专属云游戏服务器的完整指南
  • 告别手工对账:用SAP FIORI的ICMR模块,5步搞定集团关联公司往来账
  • 2026Q3 不锈钢水箱选购参考:多地区实体生产企业实力实测解读 - 品牌智鉴榜
  • 微信好友智能检测解决方案:基于iPad协议的静默关系管理架构深度解析
  • MPC8309 QUICC Engine初始化配置详解:参数RAM、虚拟线程与时钟复用
  • MPC8272 ATM控制器AAL协议硬件实现与驱动开发实战
  • 终极指南:5分钟学会使用hactool解析Switch游戏文件
  • EasyExcel模板填充图片踩坑实录:从本地路径到网络URL的完整解决方案
  • 5分钟掌握KMS_VL_ALL_AIO:终极Windows和Office智能激活解决方案
  • LRCGET:三分钟为本地音乐库批量添加同步歌词的终极方案
  • 别再只盯着阶数了!用MATLAB Fdatool分析IIR和FIR滤波器的真实延迟差异
  • 如何用trackerslist项目彻底解决BT下载连接问题:实用配置指南
  • 从ATM到MPLS:聊聊企业广域网这二十年的技术变迁与选择逻辑
  • wxappUnpacker深度技术解析|微信小程序逆向工程架构与安全分析实践
  • C#调用YOLO的两种方案:OpenCV DNN vs ONNX Runtime深度对比与工业级选型指南
  • KMS智能激活全攻略:一键永久激活Windows和Office的终极解决方案
  • MPC8323E IPIC中断控制器详解:从架构到驱动实战
  • MPC823并行I/O端口配置详解:从GPIO到外设复用的嵌入式实战指南