De pitones, serpientes y lombrices (3)

Recién me topé con Mamba1,2, otro administrador de entornos virtuales. Otra culebra más en el ecosistema de Python.

Mamba es parte del ecosistema conda-forge, que también consta de Quetz, un servidor de paquetes Conda de código abierto, y Boa3. Uno no puede evitar preguntarse el porqué la proliferación de estas cosas, pero es parte de nuestra naturaleza humana de mejora y crecimiento.

Desafortunadamente, el crecimiento de estos ecosistemas llega a desalentar a los que buscan iniciarse en ellos, pues la complejidad que van creando (aunque buscan lo contrario) incrementa, inevitablemente, la curva de aprendizaje. Resulta complicado leer la documentación y encontrarse con referencias a un «ecosistema conda-forge«, y el que los ejemplos uno vea el uso de comandos de conda. Es algo que no ayuda mucho a poder entender la distinción con el predecesor o competidor.

Al igual que con Conda y Miniconda, tenemos un Mamba y Micromamba. Sus autores indican que se debe preferir Mamba cuando:

  • Otro software utiliza libmambapy o libmamba en el mismo entorno.
  • Escenarios donde se requieren actualizaciones periódicas de las bibliotecas (especialmente por seguridad).
  • Los entornos se centran en reducir el uso de espacio en disco para las dependencias.

y, que se debe preferir Micromamba cuando:

  • Se requiere un único ejecutable autónomo.
  • No se dispone de una distribución de miniforge.
  • Su uso requiere un tiempo de ejecución mínimo.

Mamba es una reimplementación del administrador de paquetes Conda en C++. Sus desarrolladores alaban su producto señalando las siguientes características:

  • Permite la descarga paralela de datos del repositorio y archivos de paquetes vía multihilos.
  • libsolv, una biblioteca de vanguardia utilizada en el gestor de paquetes RPM de Red Hat, Fedora y OpenSUSE, para una resolución de dependencias mucho más rápida.
  • Los componentes principales de Mamba están implementados en C++ para una máxima eficiencia.
  • A su vez, Mamba utiliza el mismo analizador de línea de comandos, el mismo código de instalación y desinstalación de paquetes y las mismas rutinas de verificación de transacciones que Conda para mantener la máxima compatibilidad.

La instalación de este administrador es simple. Abajo se muestra la forma en la que puede llegar a hacerse desde la línea de comando.

parallels@ubuntu-linux-2404:~$ "${SHELL}" <(curl -L micro.mamba.pm/install.sh)
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 3059 100 3059 0 0 3060 0 --:--:-- --:--:-- --:--:-- 3060
Micromamba binary folder? [~/.local/bin]
Init shell (bash)? [Y/n]
Configure conda-forge? [Y/n]
Prefix location? [~/micromamba]
Running `shell init`, which:
- modifies RC file: "/home/parallels/.bashrc"
- generates config for root prefix: "/home/parallels/micromamba"
- sets mamba executable to: "/home/parallels/.local/bin/micromamba"
The following has been added in your "/home/parallels/.bashrc" file

# >>> mamba initialize >>>
# !! Contents within this block are managed by 'micromamba shell init' !!
export MAMBA_EXE='/home/parallels/.local/bin/micromamba';
export MAMBA_ROOT_PREFIX='/home/parallels/micromamba';
__mamba_setup="$("$MAMBA_EXE" shell hook --shell bash --root-prefix "$MAMBA_ROOT_PREFIX" 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__mamba_setup"
else
alias micromamba="$MAMBA_EXE" # Fallback on help from micromamba activate
fi
unset __mamba_setup
# <<< mamba initialize <<<

Please restart your shell to activate micromamba or run the following:\n
source ~/.bashrc (or ~/.zshrc, ~/.xonshrc, ~/.config/fish/config.fish, ...)
parallels@ubuntu-linux-2404:~$

Referencias

  1. «Introducing Mamba 2.0«, medium.com, web. Published: 2024.07.16; visited: 2025.08.10. URL: https://medium.com/@QuantStack/introducing-mamba-2-0-0e8d5c6d1d0c.
  2. «Micromamba Installation«, readthedocs.io, web. Visited: 2025.08.10. URL: https://mamba.readthedocs.io/en/latest/installation/micromamba-installation.html.
  3. «Open Software Packaging for Science«, medium.com, web. Published: 2020.06.19; visited: 2025.08.10. URL: https://medium.com/@QuantStack/open-software-packaging-for-science-61cecee7fc23.

Deja un comentario

Este sitio utiliza Akismet para reducir el spam. Conoce cómo se procesan los datos de tus comentarios.