apt vs pip: ¿Cómo gestionar paquetes de Python?

Es común tener dudas sobre cómo instalar librerías para tus proyectos. ¿Se usa `apt`? ¿O es solo `pip`?

Diagrama comparativo mostrando las diferencias entre los gestores de paquetes apt y pip en Python, destacando el uso de entornos virtuales para evitar conflictos.
Comparativa visual entre apt (sistema) y pip (Python): estabilidad versus catálogo amplio.

Bueno, aquí está la respuesta: ambos se utilizan, pero cumplen funciones diferentes.

El rol de apt

`apt` es el gestor de paquetes del sistema en distribuciones como Debian o Ubuntu. Su trabajo principal son los archivos `.deb` para programas y librerías del sistema operativo completo. Cuando instalas algo con `sudo apt install python3-numpy`, lo que obtienes es una versión preparada por la propia distribución, priorizando la estabilidad y la integración profunda con el sistema.

El rol de pip

Por otro lado, `pip` es el gestor dedicado al ecosistema Python. Con él accedes directamente a PyPI (Python Package Index), obteniendo un catálogo mucho más amplio y versiones más recientes que las que ofrece la distribución por defecto.

La mejor práctica: entornos virtuales

Aunque `pip` es muy potente, usarlo globalmente puede romper dependencias del sistema. Por eso, el estándar actual es crear un entorno virtual antes de instalar paquetes con pip:

python -m venv venv
source venv/bin/activate
pip install paquete

De esta forma, mantienes tu sistema limpio y evitas que las instalaciones globales de Python interfieran con los paquetes del sistema.