mambaorg.micromamba

Ansible 角色: mambaorg.micromamba

安装 micromamba,并可选择创建一个根/基础的 conda 环境。

链接

动机

Conda 是一个非常强大的以 Python 为中心的依赖管理工具。不幸的是,对于拥有大量依赖的环境,它的依赖求解器可能需要 几小时 才能完成。

新的 Mamba 项目通过用 C++ 重新实现依赖求解器解决了此问题,速度非常快。除了求解器外,mamba 将大多数任务委派给可靠的 conda 工具。

Micromamba 是一个高度实验性的纯 C++ 包管理器,专为 conda 环境设计。由于它没有 Python 依赖,因此它可以有效地为任何版本的 Python 创建环境,仅需一个 micromamba 可执行文件。如果你的 conda 包没有 Python 依赖,Micromamba 甚至可以创建一个没有 Python 的 conda 环境!

Micromamba 消除了对 "发行版"(如 Anaconda 或 Miniconda)的需求。你可以直接设置你想要的环境。

角色变量

arch: linux-64
version: latest

有关 最新架构和版本号,请检查 distributions[#].basename,格式为 {arch}/micromamba-{version}.tar.bz2。当前可能的 arch 值有 linux-64linux-aarch64osx-64osx-arm64win-64version 的格式为 latest 或类似 0.15.2-0 的格式,其中 -0 表示构建号。


dest: /usr/local/bin/micromamba

micromamba 可执行文件的位置。


root_prefix: /opt/conda

当根前缀被定义且不存在时,将在此位置创建一个新的根前缀。


packages:
  - mamba
  - python=3.9

创建新根前缀时要安装的初始 conda 包列表。


file: /tmp/environment.yaml

除了包列表外,还可以提供一个环境文件或锁文件。


root_prefix_condarc:
  channels:
    - conda-forge

在新根前缀中写入的 .condarc 的内容。如果未定义,则不创建 .condarc 文件。

示例剧本

- hosts: servers
  become: yes
  roles:
      - mambaorg.micromamba

这将 micromamba 可执行文件下载到默认位置 /usr/local/bin/micromamba


- hosts: servers
  become: yes
  roles:
      - mambaorg.micromamba
  vars:
    dest: /tmp/micromamba
    root_prefix: /opt/conda
    packages:
      - mamba
      - python=3.9

这将 micromamba 下载到 /tmp/micromamba,并在 /opt/conda/ 中创建一个新的根前缀,包含 Python 3.9 和 Mamba。


- hosts: servers
  become: yes
  become_user: condauser
  roles:
      - mambaorg.micromamba
  vars:
    root_prefix: ~/micromamba
    root_prefix_condarc:
      channels:
        - conda-forge
    packages:
      - s3fs-fuse

这将在 /home/conda-user/micromamba 中创建一个新的根前缀,并创建一个没有 Python 的 conda 环境。它还会在根前缀中放置一个 .condarc 文件,以配置默认从 conda-forge 通道安装的包。

后续使用

要运行 conda 环境中的任何命令,首先需要对其进行 激活。激活涉及在活动的 shell(通常是 Bash)中更改 PATH 和其他环境变量。这可以通过多种方式实现。

直接激活

eval "$(micromamba shell hook --shell=bash)"
micromamba activate --prefix=/opt/conda

第一条命令执行一系列命令,定义一个名为 micromamba 的 Bash 函数。(否则,micromamba 可执行文件将作为 子进程 运行,无法修改 shell 的环境。)第二条命令运行定义的新 Bash 函数以激活位于 /opt/conda 的环境。

使用初始化脚本

micromamba shell init --shell=bash --prefix=/opt/conda

这会修改 ~/.bashrc,以便在后续的交互式 Bash 会话中,执行 micromamba activate 就足以激活环境。(如果需要,可以将命令 micromamba activate 添加到 ~/.bashrc。)

使用 mamba 或 conda

由于 micromamba 是实验性的,建议在环境中安装 mamba 然后运行

/opt/conda/bin/conda init bash
/opt/conda/bin/mamba init bash

这些命令将修改 ~/.bashrc,让环境在后续的交互式 Bash 会话中完全激活。

故障排除

如果 Bash 没有以交互式方式运行,则不会加载 .bashrc,因此运行 micromamba activate 将失败。在这种情况下,您可以使用 直接激活程序 或通过向 bash 命令传递 -i 标志强制打开交互式 shell。

许可证

MIT

作者信息

目前由 Ben Mares (@maresb) 和 Andreas Trawoeger (@atrawog) 维护。初始版本由 @maresb 制作。欢迎贡献!

关于项目

Install micromamba, and optionally create a base conda environment.

安装
ansible-galaxy install mambaorg.micromamba
许可证
mit
下载
606
拥有者
Mathematician, Freelancer