Anaconda
Al trabajar en diferentes proyectos a lo largo del tiempo, manejar las librerías instaladas para que funcione cada uno se vuelve una tarea complicada. Quizá para un proyecto se necesita una versión de cierta librería, pero causa conflictos con la versión necesaria para otro proyecto. Aquí es donde entra Anaconda para administrar los entornos de cada proyecto.
Primero, un entorno -en el área de software- engloba todas las características en las que un usuario ejecuta un software. En el caso de proyectos de ciencia de datos, el entorno consistiría en todas las librerías y sus versiones bajo las que fue diseñado, además de la versión de Python utilizada en el desarrollo. Un ejemplo en el que se buscaría compartir el entorno es para replicar pruebas de calidad del proyecto; para compartir simplemente se exporta un archivo con extensión “yml” para que el destino pueda importarlo. [1]
Anaconda en sí es un conjunto de paquetes que incluye el paquete “Conda”, este paquete es el administrador de paquetes y entornos. Conda está disponible en Linux, OSX y Windows, además funciona con cualquier lenguaje dado que exista un paquete compatible. Aún si no está casado con ningún lenguaje, es más comúnmente usado para manejar paquetes de Python y R. [2]
Al hablar de administradores de entornos y paquetes, es posible recordar Pip para instalar paquetes de Python. Es un error pensar que Conda y Pip hacen lo mismo, aunque tienen casos de uso en común, fueron diseñados para cumplir objetivos diferentes. Pip es la herramienta usada para instalar paquetes del “Python Package Index”, mejor conocido como “PyPI”. A diferencia de Conda, Pip se usa exclusivamente para Python. Otra diferencia es que Pip instala software empaquetado como “wheels” (un tipo de archivo, con extensión “whl”) o como distribuciones fuente, que podrían requerir compiladores apropiados; mientras que Conda hace las instalaciones de paquetes mediante archivos binarios que no necesitan compiladores. [3]
Conda tiene una gran cantidad de paquetes de los que se puede elegir para incluir en proyectos, y crece día con día, pero aún con su gran popularidad no se compara con la cantidad disponible en PyPI. Debido a esto es común combinar ambas herramientas en un entorno para obtener las librerías y sus versiones correctas. Hay casos en que no existe una alternativa, pero es preferible usar solo una de estas herramientas para evitar problemas en dependencias, pues cada una instala de maneras diferentes y esto podrían causar conflictos.
Lic. Daniela Rodríguez Galindo
Fuentes
[1] Mathur, N. (9 de Agosto de 2018). Share projects and environment on Anaconda cloud [Tutorial]. Obtenido de Packt: https://hub.packtpub.com/share-projects-and-environment-on-anaconda/
[2] Doig, C. (21 de Mayo de 2015). Conda for Data Science. Obtenido de Continuum Blog: https://web.archive.org/web/20150616211813/http://continuum.io/blog/conda-data-science
[3] Understanding Conda and Pip. (28 de Noviembre de 2018). Obtenido de Anaconda: https://www.anaconda.com/blog/understanding-conda-and-pip