Pixi vs Conda:7 个让我切换到 Pixi 的理由

在过去的几年里,Wolf Vollprecht 一直深耕于包管理和 Conda 生态,亲历并推动了这个领域的一些重要变化。从用 C++ 重写 Conda 解析器、打造出高性能的 Mamba,到它被官方采纳为默认解析器,并在 conda-forge 全面落地,这一路走来,他见证了 Conda 社区的蓬勃发展,也深知它在开发者日常工作中扮演的重要角色。
然而,再优秀的工具也会有瓶颈。Conda 的速度、可复现性以及跨生态协作的便利性,都还有很大的提升空间。于是,在 Prefix,我们从零开始设计了 Pixi —— 一个面向现代开发者、跨语言、跨平台的包管理解决方案。
Pixi 的目标很明确:保留 Conda 的优势,同时解决它的痛点,让包管理更快、更简洁、更易协作。它的速度比 Conda 快 10 倍,原生支持 PyPI、Tasks 和 lockfile,并让多语言开发变得像单语言项目一样流畅。
接下来,这篇博客分享 7 个值得你从 Conda 切换到 Pixi 的理由,或许会让你重新思考你的开发环境应该是什么样子。
本文是对官方博客https://prefix.dev/blog/pixi_a_fast_conda_alternative 的翻译。译者本人目前也在参与 Pixi 的开发工作,如果你在使用过程中遇到任何问题,欢迎留言或在 GitHub 上提交 issue,我们会尽快响应,也期待你的反馈帮助我们不断改进产品!
Github 地址:https://github.com/prefix-dev/pixi
Github 地址:https://github.com/prefix-dev/pixi

如果你一直关注我的动态,可能知道我在包管理和 Conda 生态领域已经耕耘了相当一段时间。过去我主导开发了 Mamba (用 C++ 重写的 Conda 解析器,专注于性能优化)。如今,Mamba 已经被官方 Conda 采纳为默认的依赖解析器,并且几乎在整个 conda-forge 生态中得到了广泛应用。
虽然我非常热爱 Conda 生态 —— 它是唯一一个真正跨平台、与编程语言无关的包管理解决方案,但它确实存在一些痛点,比如运行速度较慢,缺乏锁文件(lockfile)等开发者急需的关键功能,让开发效率大大降低。
在 Prefix,我们希望真正解决 Conda 用户多年积累的痛点。因此我们打造了 Pixi —— 一个从底层重新设计的包管理器。
Pixi 的核心优势不仅仅是性能(比 Conda 快 10 倍),它还:
深度整合了 PyPI 生态,弥合了 Conda 与 PyPI 的生态鸿沟;
大幅简化了包管理流程,不再需要反复切换工具或手动处理依赖冲突;
原生支持任务系统(Tasks),你可以像写代码一样定义可重复执行的构建、测试、发布流程,提升协作效率;
支持 lockfile 和跨平台环境复现,从本地开发到 CI/CD 全流程无缝迁移。
Pixi 不只是一个更快的替代品,而是一个更现代的、面向多语言和跨平台开发的完整解决方案。
Mamba 的目标一直是成为 Conda 的无缝替代品。而现在的 Pixi,我们希望更进一步 —— 提供一个更有结构、更具指导性的工作流。Pixi 由 Rust 编写,运行速度最高比 micromamba 快 4 倍,并且原生支持锁文件和跨平台任务(tasks)。
我们从 Poetry、Cargo 等项目中汲取灵感,希望为 Conda 用户带来目前最强大的包管理器!
接下来我会分享几个你应该考虑从 Conda 迁移到 Pixi 的核心理由,并展示如何仅用 两个简单的步骤 就可以无痛切换,快速上手。
无论你是资深 Conda 用户,还是刚刚接触 Python 包管理的新手,我相信 Pixi 的设计哲学和体验,会让你重新思考包管理的“理想形态”。
无痛从 Conda 迁移到 Pixi
直到最近,迁移到 Pixi 还不是一件轻松的事 —— 你必须手动将 environment.yml
文件转换为 pixi.toml
。
而现在,我们最新版本让这件事变得前所未有的简单,无论你是从 Conda 还是 Mamba 迁移过来,只需一行命令:
就可以把现有 Conda 的 environment.yml
中的所有依赖转换为一个新的 pixi.toml
文件。
所有依赖导入后,Pixi 会自动生成锁文件,并将所有依赖安装到一个本地环境中(隐藏的 .pixi
文件夹)。
接下来,你就可以使用如下命令在这个环境中运行指令:
或者使用:
启动交互式环境。
理由 1:更快
我们非常注重性能优化,让 Pixi 的运行尽可能快。
我们使用 Rust 的异步机制来并行下载、解析和安装包,以实现尽可能高的速度。
我们的基准测试 (2024 年 6 月)显示,Pixi 的速度约为:
Micromamba 的 3 倍
Conda 的 10 倍以上
(测试平台:从零开始构建环境,设备为 M2 MacBook Pro)

图表中可以看到:
Pixi:约 3 秒
Micromamba:约 6 秒
Conda:接近 13 秒
如果你对性能有较高要求,这无疑是推动你从 Conda 迁移到 Pixi 的一个重要理由。
理由 2:更好地集成 PyPI
与 Conda 相比,Pixi 在 PyPI 包的集成上更为深入。这在真实项目中尤为常见,我们希望 Pixi 用户能够无缝享受 Conda 与 pip 两个生态的优势。
为了实现这一点,Pixi 使用 uv (Rust 编写的本地解析器)来解析 PyPI 包,并将其与 Conda 包一同锁定,从而实现真正的可复现性(reproducibility)。
你可以在 pixi.toml
中这样声明 PyPI 依赖:
理由 3:不再需要 Miniconda 基础环境
Pixi 的核心代码构建于 rattler —— 一个基于 Rust 的 Conda 包处理库集合之上。
Pixi 是一个静态链接的二进制文件,它和我们的其他项目(如 prefix.dev 网站、pixi 本身、以及 rattler-build)使用相同的底层库。
我们专门优化了 Pixi 以提升速度和兼容性:
✅ 无需安装 Conda 或 Miniconda
✅ 无需基础环境
✅ 不再有繁琐的 shell 安装脚本
运行以下命令来安装 pixi:
理由 4:全局安装你常用的工具,无需担心环境污染
Conda 有一个默认的"base"环境,当你打开终端时会自动激活,这个 base 环境是全局的,所有项目默认都会使用它,用户经常会无意中在 base 环境中安装包,导致环境污染。
而 Pixi 没有像 Conda 那样的全局 base 环境,这通常是 Conda 用户的烦恼来源。
取而代之的是,Pixi 支持你将一些常用的 CLI 工具全局安装,比如:
git
bat
rg(即 ripgrep)
bash
以及很多可以在 conda-forge 找到的工具。
每一个全局安装的工具都会运行在 独立隔离的环境中,不会污染或破坏 base 环境。
例如:
理由 5:跳过环境激活步骤
Pixi 不需要 conda activate / conda deactivate
这样的命令。
你只需要在项目中写好 pixi.toml 配置,然后直接运行:
Pixi 会 自动发现、安装并激活环境。
额外惊喜:Pixi 无需修改 .bashrc
或 .zshrc
,即装即用!!
理由 6:使用 Tasks 实现轻松协作
Pixi 的另一大强大功能是 任务系统(tasks)。Conda 并不支持任务系统,而 Pixi 的任务是对项目中各个入口点的抽象,比如:
start
build
lint
你无需再写复杂的 Makefile
或 Bash
脚本,就可以用 Pixi 的任务系统实现跨平台的操作流程。
这样别人只需要运行:
就能启动整个项目,非常适合在 CI/CD 中使用(参考我们的 setup-pixi GitHub Action)。
示例:
理由 7:原生 Lockfile 支持
受 conda-lock、Poetry、Cargo 启发, Pixi 原生支持 lockfile。
当你用 Pixi 初始化项目时,会自动生成一个 pixi.lock
文件,记录你所有的 Conda 和 PyPI 依赖版本。
这使得环境具备极高的可复现性,堪比 Docker 容器。
甚至连 conda-lock
的作者也评价 Pixi 是:
“conda-lock done right.”
一步完成:从 Conda 切换到 Pixi
升级到最新版本,你会发现,从 Conda 或 Mamba 切换到 Pixi,简单得出乎意料。只需一条命令:
它会将现有 Conda environment.yml
文件中的所有依赖,转换为新的 pixi.toml
。
依赖导入后,Pixi 会自动创建 pixi.lock 锁文件,并把所有依赖安装到一个本地环境中(存放在隐藏的 .pixi 文件夹中)。
此后你就可以使用以下命令运行你的程序:
Pixi 会自动激活环境。
如果你已经是 Conda 用户,那真的没有理由不试试 Pixi —— 它就像一阵清新的空气。
如果你还没装 Pixi,可以只用一条命令完成安装(不到 5 秒):
看看 Pixi 的实际效果
Pixi 的早期用户都非常喜欢它。例如:

我们正在用 @prefix_dev 的 Pixi 替换 Nix 的开发环境配置。这是近年来跨平台包管理最激动人心的事情之一。希望他们继续努力,让包管理变得清晰明了!
最后,来看一段演示视频,直观感受 Pixi 的实际表现:
https://www.youtube.com/watch?v=5ML05W7fG08&t=2s
版权声明: 本文为 InfoQ 作者【肩塔didi】的原创文章。
原文链接:【http://xie.infoq.cn/article/a8fba71e3d491ab56d3dc20bc】。文章转载请联系作者。
评论