mambaorg.micromamba

Ansible 角色: mambaorg.micromamba

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

链接

动机

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

新的 Mamba 项目通过用 C++ 重新实现依赖解析器来解决这个问题,运行速度极快。除了解析器外,mamba 的大多数任务仍然交给可靠的 conda 工具处理。

Micromamba 是一个高度实验性的纯 C++ 包管理器,适用于 conda 环境。由于没有 Python 依赖项,它可以从单个 micromamba 二进制文件中有效地创建任何版本的 Python 环境。如果您的 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

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


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 可执行文件将在一个无法修改环境的 子进程 中运行。)第二个命令运行新定义的 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 将失败。在这种情况下,您可以使用 直接激活过程 或者通过将 -i 标志传递给 bash 命令来强制进入交互式 shell。

许可证

MIT

作者信息

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

关于项目

Install micromamba, and optionally create a base conda environment.

安装
ansible-galaxy install mambaorg.micromamba
许可证
mit
下载
594
拥有者