Pixi 是用于 Linux、macOS 和 Windows 上适当跨平台二进制包管理的前沿包管理器。已推出多环境功能,此功能由多个贡献者共同设计并由社区启动。
开发软件通常涉及运行多个不同任务,pixi 的任务系统可涵盖这些任务,如编译软件、构建文档或运行测试。但这些任务可能有不同要求,有些用户可能对本地构建文档不感兴趣,因此推出新的多环境功能,任务可拥有自己的环境,还可构建专用环境,例如带或不带 CUDA。
你现在构建了什么?
环境是 pixi 的核心,之前每个项目仅支持一个环境,环境是项目文件夹中.pixi
文件夹中所有依赖的完整安装,pixi 会将所需文件链接到正确位置,链接可为硬链接或符号链接,不占用额外磁盘空间,这些环境是平台特定的。最新版本允许为项目创建多个环境,通过引入“功能”实现,一个环境可由一个或多个功能组成,用户可根据具体需求定制环境,功能可包含环境的完整描述,包括依赖、平台、通道甚至系统要求等更多细节,结合这些“功能”可让用户混合和匹配环境,如添加“test”环境,可按需使用不同环境,且 pixi 会将环境锁定在pixi.lock
文件中,可随时返回之前的环境。
真正的依赖保持在一起
可在“test”环境和“default”环境中选择不同版本的python
和numpy
,pixi 有解决方案,可定义“solve-group”,将一组依赖一起解决,使两个环境中依赖版本相同,测试人员可在需要额外依赖的同时测试要部署的精确依赖。
使用 CUDA 或不使用 CUDA:Mlx 混合
功能不限于依赖,可定义包含系统要求的完整环境,如机器学习项目可根据运行机器定义需要 CUDA 或 CPU 特定环境的pixi.toml
,可定义“default”和“cuda”环境,CUDA 环境会在需要时添加到默认环境之上,可运行不同环境的代码,pixi 会生成选择器让用户选择运行任务的环境。
现在让我们更专业
pixi 的环境解决是完全并行的,得益于resolvo
SAT 求解器,速度是其优势之一。新的pixi.lock
格式,每个依赖对应锁文件中的一个条目,指定包的工件和元数据,可静态验证锁文件是否满足pixi.toml
文件中的所有要求,需求变化时智能更新锁文件,还修改锁文件以去重条目使文件尽可能小且可读,此更改放弃了conda-lock
风格的锁文件,计划制定 CEP 以标准化新的锁文件格式。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。