Cómo gestionar las dependencias de Python con Conda

Cómo gestionar las dependencias de Python con Conda

María Santos María Santos
6 minutos

Leer el artículo
Audio generated by DropInBlog's Blog Voice AI™ may have slight pronunciation nuances. Learn more

Conda es una herramienta de gestión de paquetes, dependencias y entornos para Anaconda, muy utilizada en la comunidad científica, especialmente en la plataforma Windows, donde la instalación de extensiones binarias puede resultar difícil.

Conda ayuda a gestionar las dependencias de Python de dos formas principales:

  • Permite la creación de entornos que aíslan cada proyecto, evitando así conflictos de dependencias entre proyectos
  • Permite identificar los conflictos de dependencias en el momento de la instalación del paquete, evitando así conflictos dentro de los proyectos / entornos

Comparación de Conda con Pip, Virtualenv, Venv y Pyenv

Conda proporciona muchas de las características que se encuentran en Pip, Virtualenv, Venv y Pyenv. Sin embargo, es una herramienta completamente separada que gestionará las dependencias de Python de forma diferente y sólo funciona en entornos Conda.

Conda analiza cada paquete en busca de dependencias compatibles y cómo instalarlas sin conflicto. Si hay un conflicto, Conda te hará saber que la instalación no puede ser completada. En comparación, Pip instala todas las dependencias de los paquetes sin importar si entran en conflicto con otros paquetes ya instalados. Para evitar conflictos de dependencias, utiliza herramientas como Virtualenv, Venv o Pyenv para crear entornos aislados de Anaconda.

Uso de Conda

Conda es una herramienta de línea de comandos y está incluida en la distribución de Anaconda. Puede ejecutarse desde Anaconda Prompt en Windows o en un terminal de Linux. Suele ser más rápido y práctico utilizar Conda que la interfaz gráfica de usuario Anaconda Navigator, que también puede utilizarse para la gestión de dependencias y entornos.

Antes de trabajar con Conda, siempre es una buena práctica asegurarse de que las últimas versiones de Conda y Anaconda están instaladas. Abre una terminal Anaconda Prompt o Linux e introduce:

$ conda update conda --all
$ conda update anaconda


Conda se puede utilizar para crear, exportar, listar, eliminar y actualizar entornos que tienen diferentes versiones de Python y diferentes paquetes instalados en ellos.

Para crear un nuevo entorno llamado <nombre_entorno> e instalar Python 3.8, abre un Prompt de Anaconda o una terminal e introduce:

$ conda create --name <nombre_entorno> python=3.8

Para crear un entorno con un paquete específico en Anaconda, introduce:

$ conda create -n <nombre_entorno> <packagename>

Si conda encuentra un conflicto de dependencias durante la instalación de un paquete, te lo indicará. Por ejemplo:

$ conda install -c menpo opencv=2.4.11
Fetching package metadata .............
Solving package specifications: .
UnsatisfiableError: The following specifications were found to be in conflict:
opencv 2.4.11* -> numpy 1.9* -> python 2.6* -> openssl 1.0.1*
python 3.6*
Use "conda info " to see the dependencies for each package.

Como se sugiere en el mensaje de error, puedes utilizar el comando "conda info" para ver manualmente las dependencias de cada paquete, y con suerte encontrar versiones que a) sean compatibles entre sí, y b) funcionen con tu proyecto.

Cómo activar un entorno con Conda

Activar un entorno es cambiar de un entorno a otro. Es una buena práctica crear un nuevo entorno para cada proyecto en el que trabajes, así que cambiar de entorno puede considerarse como cambiar de un proyecto a otro.

Para activar un nuevo entorno que tenga Python 3.8 y cambiar a él, utiliza las siguientes instrucciones dependiendo de tu sistema operativo:

Windows:

$ activate <nombre_entorno>

Linux:

$ source activate <nombre_entorno>

Una vez activado el entorno, utiliza la siguiente instrucción para instalar un paquete en dicho entorno recién activado:

$ conda install <nombre_paquete>

Cómo determinar el entorno actual con Conda

Es muy sencillo. El entorno actual o activo se muestra entre paréntesis () o corchetes [] al principio del Prompt o terminal de Anaconda:

(<entorno_actual>) $

Cómo gestionar las dependencias de Python con Conda

Recomendaciones para evitar conflictos de dependencia con Conda

Hay dos sencillas reglas a seguir:

  1. Crea siempre un nuevo entorno para cada proyecto
  2. Instala todos los paquetes que necesites en el nuevo entorno al mismo tiempo. Instalar paquetes de uno en uno puede provocar conflictos de dependencias

Para crear un entorno con una versión específica de Python y múltiples paquetes incluyendo un paquete con una versión específica, utiliza la siguiente instrucción:

$ conda create -n <nombre_entorno> python=<version> <nombre_paquete> 
<nombre_paquete> <nombre_paquete>=<version>

Alternativamente, puedes usar conda para instalar todos los paquetes en un archivo requirements.txt. Puede guardar un archivo requirements.txt de un entorno existente, o crear manualmente un nuevo requirements.txt para un entorno diferente.

Para crear un archivo requirements.txt conda desde un entorno existente, sigue los pasos listados a continuación:

  1. Activa el entorno de tu proyecto. Vea la sección anterior titulada "Cómo activar un entorno con Conda" para más detalles
  2. Enumera los paquetes en uso en el entorno activado:
    $ conda list
  3. Guarda la información del paquete en un archivo requirements.txt
    $ conda list -e > requirements.txt
    Ejemplo de archivo requirements.txt:
    # This file may be used to create an environment using:
    # $ conda create --name <env> --file <this file>
    # platform: win-32
    ca-certificates=2020.1.1=0
    certifi=2020.4.5.1=py38_0
    openssl=1.1.1f=he774522_0
    pip=20.0.2=py38_1
    ...
                 ...
    wheel=0.34.2=py38_0
  4. Instala el archivo requirements.txt en el nuevo entorno del proyecto:
    $ conda install -n <env_name> requirements.txt


¿Quieres aprender Python?

¡En la plataforma Frogames Formación tenemos todo lo que necesitas para convertirte en un experto en Python y mucho más! Comienza con nuestro curso "Python de la A a la Z", donde te enseñaremos los fundamentos de este lenguaje de programación y te guiaremos a través de ejercicios prácticos.

Pero eso no es todo, también ofrecemos una amplia colección de cursos especializados en análisis de datos, machine learning, deep learning y ¡hasta trading algorítmico!

Nuestros cursos te brindarán las habilidades y conocimientos necesarios para aplicar Python en proyectos de análisis de datos, desarrollar algoritmos de machine learning, construir modelos de deep learning y explorar las estrategias de trading algorítmico.

Con nuestra guía paso a paso, ejercicios prácticos y proyectos reales, estarás preparado para enfrentar cualquier desafío en el mundo de la programación y análisis de datos.

¡Nos vemos en clase!

« Volver al Blog

Obtener mi regalo ahora