Los entornos virtuales son espacios independientes a tu instalación local, cuya función es “empaquetar” de forma independiente los diferentes recursos y librerías. Gracias a este recurso podemos tener distintos entornos virtuales con diferentes versiones de Python y de las librerías usadas. Así, por ejemplo, podemos tener un entorno con Python 3.8 y tensorflow que nos sirve para ejecutar ciertos scripts, y otro entorno diferente con Python 3.9 y los paquetes de ciencia de datos (numpy, pandas…) para ejecutar otro tipo de scripts.
Pero una de las mejores utilidades que tienen los entornos virtuales es que facilitan la posibilidad de ejecutar tus scripts en otros equipos de forma rápida, sin tener que andar instalando uno a uno los paquetes necesarios en el otro equipo y evitando problemas de compatibilidad.
Anaconda nos permite crear y gestionar fácilmente estos entornos virtuales. Este post, vamos a ver los comandos para crear y compartir un entorno virtual en Anaconda.
Para todos estos comandos usaremos la terminal de Anaconda (Anaconda Prompt)
Listado de entornos ya creados
Podemos ver en cualquier momento un listado de los entornos que ya estén creados:
conda info --envs
Crear un entorno nuevo con cierta versión de Python
Para crear un entorno sólo con determinada versión de Python podemos usar el siguiente comando:
conda create -n mientorno python=3.9
Crear un entorno nuevo con librerías específicas
Si además de Python queremos incluir versiones específicas de ciertas librerías, podemos utilizar el siguiente comando:
conda create -n mientorno python=3.9.13 pandas=1.4.4 scikit-learn numpy=1.21.5
Si no indicamos la versión (como es el caso de scikit-learn en el ejemplo anterior) Anaconda buscará la última versión que sea compatible con el resto de versiones indicadas.
Ampliación de repositorios
Si en el paso anterior tienes problemas para que Anaconda encuentre ciertas librerías, puedes probar a agregar más canales:
conda config --append channels conda-forge
Instalar un nuevo paquete en un entorno ya existente
Si ya tenemos un entorno creado y queremos agregarle una nueva librería, podemos utilizar el siguiente comando:
conda install –name mientorno pandas
Activar entorno existente
Podemos activar un entorno ya creado de la siguiente forma:
conda activate mientorno
Desactivar entorno
Desactivamos un entorno activo con el siguiente comando:
conda deactivate
Borrar entorno
Podemos eliminar definitivamente un entorno creado de la siguiente forma:
conda env remove --name mientorno
Exportar entorno existente a fichero yml
La forma de compartir un entorno para ejecutar nuestro script en otro equipo es con un fichero yml. Podemos generar un fichero de este tipo a partir de un entorno previamente creado de la siguiente forma:
conda env export -n mientorno -f environment.yml --no-builds
Para compartir el entorno, solo tenemos que enviar el fichero yml creado al nuevo equipo dónde se vaya a usar.
Exportar entorno actualmente activado a fichero yml
Si el entorno que queremos exportar lo tenemos actualmente activo, lo podemos exportar con el siguiente comando:
conda env export > environment.yml --no-builds
Importar un entorno a partir de un fichero yml
El último paso sería importar el entorno en el nuevo equipo a partir del fichero yml compartido. Podemos hacerlo de la siguiente forma:
conda env create --name mientorno --file=environment.yml