micromamba

Ansible роль: mambaorg.micromamba

Установите micromamba и при желании создайте корневую/базовую среду conda.

Ссылки

Мотивация

Conda — это мощный инструмент управления зависимостями для Python. К сожалению, для сред с большим количеством зависимостей его медленный решатель зависимостей может работать часами.

Новый проект Mamba решает эту проблему, переimplementируя решатель зависимостей на C++, что делает его очень быстрым. В дополнение к решателю, mamba делегирует большинство задач проверенному инструменту conda.

Micromamba — это экспериментальный менеджер пакетов на чистом C++ для сред conda. Поскольку он не имеет зависимостей от Python, он может эффективно создавать среды для любой версии Python из одного бинарного файла micromamba. Если ни один из ваших пакетов conda не имеет зависимости от Python, то Micromamba даже создаст среду conda без Python!

Micromamba исключает необходимость в "дистрибутивах" таких как Anaconda или Miniconda. Вы можете настроить желаемую среду напрямую.

Переменные роли

arch: linux-64
version: latest

Для последних архитектур и номеров версий проверьте distributions[#].basename, который имеет формат {arch}/micromamba-{version}.tar.bz2. Текущие возможные значения для arch — это linux-64, linux-aarch64, osx-64, osx-arm64, win-64. Формат version — это либо 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 и создает среду conda без Python. Также он создает файл .condarc в корневом префиксе для настройки установки пакетов по умолчанию из канала conda-forge.

Последующее использование

Для того чтобы выполнить любые команды в среде conda, ее необходимо сначала активировать. Активация включает изменение PATH и других переменных окружения в активной оболочке (обычно Bash). Это можно сделать различными способами.

Непосредственно

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

Первая команда выполняет ряд команд, которые определяют функцию Bash с именем micromamba. (В противном случае исполняемый файл micromamba будет работать как субпроцесс, который не может изменить окружение оболочки.) Вторая команда запускает только что определенную функцию Bash для активации среды, расположенной по адресу /opt/conda.

С помощью скрипта инициализации

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

Это изменяет ~/.bashrc, так что в последующих интерактивных сессиях Bash команда micromamba activate будет достаточной для активации среды. (При желании команду micromamba activate можно добавить в ~/.bashrc.)

С помощью mamba или conda

Поскольку micromamba является экспериментальным, вместо использования вышеуказанных методов, которые используют micromamba для активации, рекомендуется установить mamba в среду и выполнить

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

Эти команды изменяют ~/.bashrc, чтобы среда была полностью активирована в последующих интерактивных сессиях Bash.

Устранение неполадок

Если Bash не запускается интерактивно, то .bashrc не будет загружен, и команда micromamba activate не сработает. В этом случае вы можете либо использовать прямую процедуру активации, либо заставить оболочку быть интерактивной, добавив флаг -i к команде bash.

Лицензия

MIT

Информация об авторе

В настоящее время поддерживается Беном Маэрсом (@maresb) и Андреасом Травогером (@atrawog). Начальная версия создана @maresb. Внесение вкладов приветствуется!

О проекте

Install micromamba, and optionally create a base conda environment.

Установить
ansible-galaxy install mamba-org/ansible-role-micromamba
Лицензия
mit
Загрузки
445
Владелец