Hay varios argumentos:
Utilice los repositorios / PPA porque lo mantendrán estable y actualizado con las correcciones de seguridad.
Esto es mayormente cierto. Si, por ejemplo, instala python-django
como yo, obtendrá actualizaciones de seguridad. Esto es bueno porque solo tiene que estar al tanto de apt, pero aún debe probar las cosas antes de enviar actualizaciones (aunque las pruebas deberían estar bien cada vez).
Podrías argumentar que si lo usas pip
, nunca podrías buscar actualizaciones.
Use pip
para poder usar las versiones "estables" adecuadas.
No hay duda al respecto: los repos rezagados detrás del mundo real. Django es 2.0, pero los repositorios para la versión LTS de Ubuntu (que mucha gente usa para servidores) solo obtienes 1.8 en Ubuntu 16.4 lts con Python 2, pero aún obtienes actualizaciones de seguridad.
pip
te da lo último todo el tiempo. Solo tienes que actualizarlos tú mismo.
Actualizar una instalación de Python reutilizada puede ser una pesadilla
Cuando usted actualiza Ubuntu a la próxima versión, actualiza muchos paquetes. Muchas cosas cambian. Sé que en Django esto significa que debes tener cuidado de estar atento a las incompatibilidades de código, desaprobaciones ... Pero lo mismo se aplica a todos los demás códigos de Python.
Lo mismo es cierto para pip
pero con pip
usted puede hacer una cosa a la vez. Sabes qué causa los problemas, así que sabes dónde buscar para encontrar la solución.
pip
+ virtualenv
te permite mantener las cosas separadas
virtualenv
le permite tener pequeños entornos portátiles de Python. Esto le permite tener varios entornos Python diferentes ejecutándose uno al lado del otro en la misma máquina.
La bendición obvia parece ser para el mantenimiento, ya que puede administrar el entorno de la misma manera que administra el código. Incluso almacene el entorno en el VCS también ... pero debe recordar que tener doce virtualenv
s diferentes significa doce entornos que debe verificar y actualizar.
Editar: Después de una horrible serie de actualizaciones en un servidor para obtenerlo de Lucid a Precise, he cambiado de una situación mixta Apt + pip (nr 1 y 2) a una situación pura pip + virtualenv (nr. 4). En lugar de tener un virtualenv por sitio, tengo uno compartido entre una docena de sitios. Esto está funcionando por ahora.
También tuve que escribir un pequeño script que verifica el estado de los paquetes instalados con pip. Si hay actualizaciones, tengo que aplicarlas manualmente (lo cual es bueno porque las pruebo localmente, en un local virtualenv). Todo esto es aún un poco más doloroso de lo que era originalmente, pero a la larga es mucho mejor.