Conda 的更快求解器:Libmamba

conda 22.11 更新:libmamba 求解器的实验性标志已移除。要使用新的求解器,请更新您的基础环境中的 conda

conda update -n base conda

要安装并设置新的求解器,请运行以下命令

conda install -n base conda-libmamba-solver
conda config --set solver libmamba

了解更多信息 此处


介绍 conda-libmamba-solver

Conda 团队很高兴地宣布 'libmamba' 作为 conda 的一个新的、快得多的依赖项求解器!三家不同的公司共同努力使此版本成为可能:QuantStack,开发了 mamba 和 libmamba;Quansight,将 libmamba 集成到 conda 中;以及 Anaconda,开发 conda 并管理整体工作。继续阅读以了解该项目的核心贡献者、我们为何将 mamba 的功能引入 conda 以及如何从今天开始加快您的工作流程。

15 秒对比 91 秒:在同一台 Windows 机器上使用新环境运行“conda install scipy tensorflow”。

核心贡献者

  • Wolf Vollprecht | QuantStack Wolf 是 QuantStack 的 CTO,QuantStack 是一家专注于 Mamba 和 Jupyter 的开源公司。他是 conda-forge 社区的核心成员,并帮助维护数百个机器人包作为 RoboStack 项目的一部分。

  • Jaime Rodríguez-Guerra | Quansight Jaime 拥有生物技术博士学位,他认为打包是可重复研究的支柱之一。在从事药物设计领域的分子建模框架和机器学习管道工作时,他成为了 conda 的爱好者。

  • Filipe Laíns | Quansight Filipe 是 Python Packaging Authority 的成员,pypa/build 工具的作者,以及 Arch Linux 发行版的维护者。他致力于改进 Python 包生态系统并缩小 Python 包下游之间的差距。

  • Tania Allard | Quansight Tania 拥有计算建模博士学位,是一位知名且多产的 PyData 社区成员。Tania 是 PSF(Python 软件基金会)的成员和主管,并参与了会议组织(JupyterCon、SciPy、PyJamas、PyCon UK、PyCon LatAm、JuliaCon 等),社区建设(PyLadies、NumFOCUS、RForwards),对 Matplotlib 和 Jupyter 的贡献,以及经常的演讲者和导师。

  • Jannis Leidel | Anaconda Jannis 是 Anaconda conda 团队的高级软件工程师,之前曾联合创立 Python Packaging Authority,该志愿者组织十多年来一直维护着 Python 编程语言的基本包管理软件。他目前担任 Python 软件基金会董事会成员,他认为培养 conda 项目对于帮助日益壮大的数据从业人员社区至关重要。

我们为何将 Mamba 求解器引入 Conda?

The mamba 项目 是一款快速、替代的 conda 客户端,由于其对 conda 元数据实现了 libsolv 求解器,因此已被广泛采用。在将 mamba 求解器引入 conda 时,该项目具有以下目标

  • 将 conda 的解析速度提高 50-80%*

  • 最大限度地提高向后兼容性,以免破坏任何当前功能

  • 构建插件基础设施,以便其他人创建自定义求解器

  • 加强我们为满足社区需求而付出的努力

* 基于在 Linux、MacOS 和 Windows 上执行的集成测试套件

conda 解析环境包依赖项的速度是用户体验和 conda 用途的关键因素。熟悉 conda 的用户知道 conda 有其优点和缺点。一方面,它独自解决了跨平台和包依赖问题;另一方面,此依赖项解析过程可能很慢,尤其是在 conda 生态系统快速增长且包依赖变得越来越复杂的情况下,需要考虑更多可能的依赖项组合。

虽然 mamba 被宣传为 conda 的更快的直接替换求解器,但在功能方面存在一些差异,尤其是在 conda 多年来积累的一些边缘情况下。集成测试中出现的一些问题包括 pip 互操作性、与 conda 的包和平台测试套件的兼容性以及标志和更新配置解析。这就是 Anaconda 与 Quansight 合作将 mamba 的 libsolv 存储库解析器和求解器集成到 conda 中的原因,同时尽可能地重新使用 conda 中的元素,以弥合在使用 mamba 求解器时观察到的任何功能差异。

以向后兼容性为优先事项,此 libmamba 集成版本的目的是在不改变现有 conda 工作流程的情况下显着减少解析 conda 包的时间。

如何启用 libmamba

此 libmamba 的实验性版本是我们实施新求解器的概念验证。要使用 libmamba,请在您的 conda 基础环境中安装它,然后在安装其他包时将其指定为求解器

  • 请确保更新到至少 conda 4.12.0
    conda update -n base conda
  • 安装 conda libmamba 求解器插件
    conda install -n base conda-libmamba-solver

要在临时基础上或不将其设置为默认求解器的情况下尝试使用 libmamba,您可以在命令行上运行以下命令

conda create -n demo --experimental-solver=libmamba --dry-run install <some package>

作为实验性版本,已实现匿名自动调试日志记录(存储为计算机上的本地日志文件),以解决使用常规问题管理系统可能出现的任何问题。一旦我们对稳定性和社区收到的反馈感到满意,当前版本将被采用为默认的 conda 求解器,因此强烈建议采用并将其作为持续改进的必要条件!提供的任何反馈都将极大地加快 libmamba 作为 conda 默认求解器的采用速度。您可以在 此 Github 链接 上提交任何问题。

请按照上述步骤激活 libmamba 求解器并尝试使用您的现有工作流程。Anaconda 和 Quansight 团队将密切监控这些报告,以继续改进求解器的功能。

展望未来

Quansight 和 Anaconda 正在举办一个三部分的网络研讨会系列,涵盖 conda 求解器逻辑、集成和测试流程、conda 用户将体验到的重大更改以及如何启用 libmamba。单击 此链接 以观看 Anaconda Nucleus 上的首次网络研讨会,或注册参加 Quansight 和 Anaconda 在 下一个网络研讨会 中的活动,该活动将于 3 月 23 日美国东部时间下午 2 点/美国太平洋时间上午 11 点直播。

与专家交谈

与我们的专家交谈,为您的 AI 之旅寻找解决方案。

与专家交谈