Avalados por :

Una comparación detallada de Pip, Conda y Poetry para la gestión de dependencias en proyectos de Python

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 14 Vistas
0
Loading...
Una comparación entre diferentes herramientas de gestión de dependencias para proyectos de Python


Introducción


La gestión de dependencias es un aspecto importante de cualquier proyecto de programación que requiere el uso de funcionalidades en bibliotecas y paquetes externos (bibliotecas y paquetes que no vienen con nuestro entorno de programación de forma predeterminada). Desarrollar aplicaciones complejas con el lenguaje de programación Python es un caso así. Hay varias herramientas disponibles que gestionan las dependencias de los proyectos de Python, como Pip, Conda e incluso Poetry. Si bien es comprensible que diferentes personas tengan preferencias diferentes en cuanto a las herramientas de gestión de dependencias, me gustaría compartir más sobre por qué es posible que te convenga usar Poetry en lugar de Pip o Conda. Solo incluyo Pip, Conda y Poetry en este artículo, ya que son las herramientas que he utilizado personalmente.

Inicios


Antes de continuar, creo que sería bueno entender un poco más sobre las diferentes herramientas de gestión de dependencias que vamos a comparar.

  • Conda: Conda es una herramienta de gestión de dependencias que viene con Anaconda. Anaconda suele ser utilizada por principiantes en ciencia de datos que están comenzando en la programación en Python y no quieren preocuparse demasiado por instalar las dependencias comunes necesarias para el trabajo de ciencia de datos, como numpy , pandas , jupyter y scikit-learn . Más información sobre Conda se puede encontrar en su documentación , mientras que Anaconda también tiene su propio página de inicio .

  • Pip: Pip es una herramienta de gestión de dependencias que viene junto con la instalación estándar de Python para Windows, y se puede instalar a través de Homebrew para MacOS y el administrador de aplicaciones de distribución para sistemas Linux (por ejemplo, apt para Debian y Ubuntu). Este artículo de Real Python da una buena descripción de cómo se puede empezar a usar Pip.

  • Poetry: Poetry es una herramienta de gestión de dependencias más reciente que está ganando visibilidad y popularidad entre los usuarios de Python. El uso de los archivos pyproject.toml y poetry.lock lo hace similar a la forma en que funciona el Administrador de Paquetes de Nodo (npm) para Node.js. Más información sobre Poetry se puede encontrar en su documentación .


La Parte Divertida


Ahora es donde intento convencerte de que Poetry es la mejor elección de las 3 herramientas de gestión de dependencias que describí anteriormente.

Olvídate completamente de Conda si planeas programar en Python para producción


Sé que "olvidar xx completamente" es una frase bastante fuerte, pero tengo mis razones para decir esto.

Paquetes preinstalados en Anaconda


Si ejecutamos el comando conda list en el entorno base, podríamos ver algo como esto en la terminal:
(base) usuario:~$ conda list

# paquetes en el entorno en /home/usuario/anaconda3:
#
# Nombre                    Versión                   Construir  Canal
_ipyw_jlab_nb_ext_conf    0.1.0            py39h06a4308_0  
_libgcc_mutex             0.1                        principal  
_openmp_mutex             4.5                       1_gnu  
alabaster                 0.7.12             pyhd3eb1b0_0
...
jupyter                   1.0.0            py39h06a4308_7
...
numpy                     1.20.3           py39hf144106_0
...
pandas                    1.3.4            py39h8c16a72_0
...
scikit-learn              0.24.2           py39ha9443f7_0
...
Pinterest
Telegram
Linkedin
Whatsapp

Sin respuestas

No hay respuestas para mostrar No hay respuestas para mostrar Se el primero en responder

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?