Gestión de dependencias de Python: Un incendio descontrolado

2024-12-15

Este artículo profundiza en la complejidad de la gestión de dependencias de Python, comparándola con la construcción de una fogata en un bosque seco. El autor argumenta que las dependencias de Python no son simplemente una cuestión de `pip install`; abarcan paquetes de proyecto, paquetes del sistema, el sistema operativo, el hardware y el entorno en sí. La buena gestión de dependencias es crucial para la reproducibilidad, garantizando resultados consistentes en diferentes entornos. El artículo detalla el control de versiones, el aislamiento del entorno, los archivos de definición, los archivos de bloqueo y otros conceptos clave. Luego, proporciona una comparación exhaustiva de varias herramientas, incluidas pip, venv, virtualenv, pip-tools, Pipenv, Poetry, PDM, pyenv, pipx, uv, Conda, Mamba, conda-lock y Pixi, analizando sus fortalezas, debilidades y casos de uso. Finalmente, el autor ofrece recomendaciones de herramientas en función de diferentes escenarios (privilegios administrativos, tipos de dependencias, sistemas operativos, etc.) y analiza las tendencias futuras en la gestión de dependencias de Python.