news 2026/6/14 12:35:14

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
为什么用 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等)不能硬链接,所以还是会占用磁盘空间
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/14 12:27:56

WindowResizer:突破Windows原生限制的专业级窗口强制调整工具

WindowResizer:突破Windows原生限制的专业级窗口强制调整工具 【免费下载链接】WindowResizer 一个可以强制调整应用程序窗口大小的工具 项目地址: https://gitcode.com/gh_mirrors/wi/WindowResizer 在Windows桌面管理中,你是否曾遇到过那些顽固…

作者头像 李华
网站建设 2026/6/14 12:26:45

围棋AI分析终极指南:如何用LizzieYzy快速提升棋艺水平

围棋AI分析终极指南:如何用LizzieYzy快速提升棋艺水平 【免费下载链接】lizzieyzy LizzieYzy - GUI for Game of Go 项目地址: https://gitcode.com/gh_mirrors/li/lizzieyzy LizzieYzy是一款专为围棋爱好者设计的智能分析工具,通过强大的AI引擎和…

作者头像 李华
网站建设 2026/6/14 12:26:39

别再死记硬背了!通过‘图书管理’案例,一次搞懂顺序表和链表的本质区别

从图书管理系统实战解析顺序表与链表的本质差异在计算机科学的学习过程中,数据结构是构建高效算法的基石。然而,许多初学者在面对顺序表和链表这两种基础线性结构时,往往陷入死记硬背的困境——记住了定义却无法在实际问题中做出正确选择。本…

作者头像 李华
网站建设 2026/6/14 12:26:32

DNS不只是个‘电话本’:从技术人视角聊聊114、阿里、Google DNS背后的设计差异与选型逻辑

DNS不只是个‘电话本’:从技术人视角聊聊114、阿里、Google DNS背后的设计差异与选型逻辑当我们在浏览器输入一个网址时,很少有人会思考这个简单的动作背后隐藏着怎样的技术迷宫。作为互联网的基础设施之一,DNS系统远比表面看起来复杂得多。对…

作者头像 李华