- PVSM.RU - https://www.pvsm.ru -
Ускоряем змею!
Mamba — это drop-in замена Conda, потрясающего кросс-платформенного менеджера пакетов. На наш взгляд у Conda есть один фатальный недостаток: она слишком медленная, когда много пакетов уже установлено или при одновременной установке нескольких пакетов. Mamba по-прежнему использует Conda почти для всего, кроме разрешения зависимостей. Мы заменили эту часть Conda на альтернативную реализацию под названием libsolv — C библиотеку, которая уже лежит в основе менеджеров пакетов в Linux системах типа dnf в Fedora или zypper в OpenSuse.
Интерфейс командной строки, работа с окружением, формат файла пакета, процесс установки, формат repodata и всё остальное — один-в-один как в Conda и работает на том же питоновском коде, что и Conda. Так что отличие, и правда, только в разрешении зависимостей!
Первая хорошая новость в том, что наши правки libsolv для поддержки Windows (MSVC) были добавлены в upstream. Это значит, что теперь libsolv отлично работает на всех основных операционных системах (Windows, Linux и OS X). Кроме того, Michael Schröder из OpenSUSE очень помог нам, интегрировав поддержку Conda в саму libsolv!
Последнюю версию Mamba можно использовать не только для установки, но и для обновления и удаления модулей.
Например, сейчас команды
$ mamba update xtensor -c conda-forge
и
$ mamba remove numpy
работают без проблем и гораздо быстрее чем в Conda.
Благодаря поддержке Conda на уровне libsolv пакеты теперь будут матчиться по абсолютно тому же алгоритму, что и в Python. Можно использовать «сложные» аргументы в командной строке, например:
$ mamba install "blas=*=openblas"
Благодаря нашим друзьям в Binder/repo2docker мы стали поддерживать установку и из yml файлов! Рад сообщить что она проходит все тесты [1] из repo2docker!
$ mamba env create -f xstack.yml
Где xstack.yml это yml файл, соответствующий формату Conda.
И последнее по порядку, но не по важности: Mamba перестала быть в статусе «альфа». Теперь её можно загрузить из дефолтного канала conda-forge:
conda install mamba -c conda-forge # or ... <br />mamba update mamba -c conda-forge # of course ;)
Так же как у Conda есть miniconda для минимальной базовой установки, теперь и у нас есть minimamba, использующая тот же самый механизм подготовки к установке Mamba. Это очень круто, так как вскоре Mamba можно будет использовать в CI, где она сможет значительно ускорить сборку!
Хотя мы уже очень довольны Mamba, так как используем её в повседневной деятельности, есть ещё над чем поработать:
И ещё пара изменений вроде этих — не очень сложных, но требующих времени на реализацию. Мы все ещё подумываем о запуске кампании на KickStarter или о чём-нибудь в этом роде, чтобы обеспечить финансирование стабильности работы.
Если вы захотите внести свой вклад, Mamba живёт здесь. [3]
Если вы хотите оставаться в курсе событий: https://twitter.com/wuoulf [4]
Автор: germn
Источник [5]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/python/320872
Ссылки в тексте:
[1] что она проходит все тесты: https://medium.com/home/wolfv/Documents/https://github.com/jupyter/repo2docker/pull/643/files
[2] Страница для загрузки: https://quantstack.net/mamba.html
[3] Mamba живёт здесь.: https://github.com/QuantStack/mamba
[4] https://twitter.com/wuoulf: https://twitter.com/wuoulf
[5] Источник: https://habr.com/ru/post/456114/?utm_campaign=456114&utm_source=habrahabr&utm_medium=rss
Нажмите здесь для печати.