Uso de Miniconda

Ambientes virtuales

Como buena práctica en el desarrollo de aplicaciones en Python se sugiere el uso de ambientes virtuales los cuales permiten crear un entorno aislado para los proyectos. Esto permite que cada proyecto pueda tener sus propias dependencias, las cuales son independientes de las dependencias de otros proyectos.

Alternativas de Entornos Virtuales

Hay muchas alternativas para utilizar ambientes virtuales para Python dentro de las más comunes se encuentran venv, virtualenv y pyenv entre muchas otras.
Otra alternativa muy utilizada, sobre todo en Data Science, es Conda, el cual es un sistema de administración de paquetes, dependencias y ambientes virtuales para lenguajes como Python, R, Ruby, Lua, Scala, Java, JavaScript, C/ C++ o FORTRAN.

Alternativas de Conda

  • Anaconda es una distribución de Python y R para cómputo científico (data science, machine learning, procesamiento de grandes volúmenes de información, etc.), que está enfocado en simplificar la administración de paquetes para las aplicaciones. Anaconda es una distribución completa de Python y viene con más de 1000 paquetes. Debido a esto, el tamaño total de instalación supera los 3 GB. Hay que tener en cuenta que frecuentemente se utiliza solo unos cuantos paquetes de los 1000 que vienen con la distribución.

  • Miniconda es un instalador de Conda. Es una versión pequeña y mínima de Anaconda, la cual incluye únicamente Conda, Python y un pequeño conjunto de paquetes incluyendo pip. El tamaño de Miniconda es de aproximadamente 400 MB, mucho más pequeño que la versión completa de Anaconda, de modo que los paquetes adicionales requeridos deben ser descargados e instalados según se requiera.

Para tomar una decisión de cuál de las 2 alternativas se ajusta más a las necesidades se puede consultar la documentación de Conda en https://docs.conda.io/projects/conda/en/latest/user-guide/install/download.html#anaconda-or-miniconda

Comandos de Miniconda

Una vez instalado Miniconda en el sistema se pueden utilizar los siguientes comandos para su gestión:

Actualizar Conda a su última versión

conda update -n base -c defaults conda

Información de conda

Este comando muestra información relacionada con la versión instalada, versión de Python, plataforma, URLs de repositorios, etc

conda info

Listar ambientes

En un máquina pueden (y deben) existir múltiples ambientes virtuales, uno por proyecto. Para ver la lista de ambientes creados en la máquina ejecute:

conda env list

Crear ambiente

conda create --name nombre_ambiente python=3.8
  • El parámetro --namepermite establecer el nombre del nuevo ambiente
  • El párametro python establece la versión de Python que se ejecutará en el ambiente virtual.

Crear ambiente con paquetes

Se puede crear un ambiente y automáticamente instalar los paquetes requeridos ejecutando:

conda create --name nombre_ambiente python=3.6 flask flask-cors numpy gdal

Activar ambiente

Al desarrollar o ejecutar una aplicación se debe activar su ambiente virtual ejecutando:

conda activate nombre_ambiente

Desactiva ambiente

Para salir del ambiente virtual ejecute:

conda deactivate

Instalar paquete

Si se desea instalar un paquete específico en el entorno virtual se puede ejecutar:

conda install nombre_paquete

Reemplace nombre_paquete por el paquete que desea instalar.

Listar paquetes del ambiente activo

conda list

Eliminar un ambiente

conda remove --name nombre_ambiente --all

Generar el archivo txt de paquetes de un ambiente

Es usual que se incluya un archivo con la lista de paquetes de la aplicación. Este archivo se utiliza para recrear el ambiente virtual en otra máquina (p.e. desarrollo, producción o pruebas). Para generar el archivo con la lista de paquetes ejecute:

conda list -e > nombre_ambiente.txt

Generar el archivo yaml de paquetes de un ambiente

Conda permite instalar paquetes en un ambiente virtual utilizando un archivo txt o yaml. Para generar el archivo yaml (extensión yml) ejecute:

conda env export > nombre_ambiente.yml

Crear un ambiente instalando los paquetes de un archivo yaml

La primera instrucción en el archivo YML dice el nombre del nuevo ambiente

conda env create -f nombre_ambiente.yml

42