Emacs package for working with micromamba environments.
mamba is a reimplementation of the conda package manager in C++.
mamba is notably much faster and essentially compatible with
conda, so it also works with conda.el.
micromamba, however, implements only a subset of
mamba commands, and as such requires a separate integration.
The package is available on MELPA. Install it however you normally install packages, I prefer
Or clone the repository, add it to the
require the package.
micromamba binary is located in some place unknown to
executable-find, set the
The package has two entrypoints:
M-x micromamba-activate- activate the environment
M-x micromamba-deactivate- deactivate the environment
micromamba-activate prompts for the environment (by parsing
micromamba env list). If some environments have duplicate names, these names are replaced by full paths.
I’ve noticed that
micromamba also sees
conda environments, so migrating from
conda was rather painless for me.
I initially wanted to extend conda.el, but decided it would be counterproductive for a few reasons.
conda is rather slow, so
conda.el does various tricks to avoid calling the
conda executable. For instance, it gets the environment list from scanning the anaconda home directory instead of running
conda env list. This is really not necessary with
micromamba, which is written in C++.
Second, and more importantly,
conda.el relies heavily on passing
micromamba doesn’t support that. It supports the
--json flag in some places, but not in the
activate command, so I have to parse the output of
micromamba shell -s bash activate and
micromamba shell -s bash deactivate to get the environment configuration.
This also means the package most likely won’t work out-of-the-box on Windows.