Il existe plusieurs arguments:
-
Utilisez les référentiels / PPA car ils vous permettront de rester stable et à jour avec les correctifs de sécurité.
Ceci est surtout vrai. Si, par exemple, vous installez python-django
, vous obtenez des mises à jour de sécurité. C'est bien, car il suffit de rester au fait d'apt mais vous devez toujours tester les choses avant de lancer les mises à jour (bien que les tests soient corrects à chaque fois).
Vous pourriez dire que si vous utilisiez pip
, vous ne pourriez jamais vérifier les mises à jour.
-
Utilisez pip
pour pouvoir utiliser les versions "stables" appropriées.
Il n'y a aucun doute à ce sujet: les repos reposent sur le monde réel. Django est la version 2.0, mais le repositionnement de la version LTS d'Ubuntu (que beaucoup de personnes utilisent pour les serveurs) ne contient que 1.8 sur Ubuntu 16.4 avec Python 2, mais continue à recevoir des mises à jour de sécurité.
pip
vous donne le dernier tout le temps. Il vous suffit de les mettre à jour vous-même.
-
La mise à jour d’une installation Python utilisée par repo peut être un cauchemar
Lorsque vous mettez à jour Ubuntu vers la version suivante, il met à jour beaucoup de paquets. Beaucoup de choses changent. Je sais que dans Django, cela signifie que vous devez faire attention à éviter les incompatibilités de code, les dépréciations ... Mais la même chose s’applique à tous les autres codes Python.
La même chose est vraie pour pip
mais avec pip
, vous devez faire une chose à la fois. Vous savez ce qui cause les problèmes afin que vous sachiez où chercher pour trouver le correctif.
-
pip
+ virtualenv
vous permet de garder les choses séparées
virtualenv
vous permet d'avoir de petits environnements portables Python. Cela vous permet d'avoir plusieurs environnements Python différents côte à côte sur la même machine.
L’avantage évident semble être la maintenance car vous pouvez gérer l’environnement de la même manière que vous gérez le code. Même stocker l'environnement dans le VCS aussi ... mais vous devez vous rappeler qu'avoir douze virtualenv
s différents signifie douze environnements que vous devez vérifier et mettre à jour.
Edit: Après une horrible série de mises à jour sur un serveur pour passer de Lucid à Precise, je suis passé d’un Apt + pip mixte (n ° 1 et 2) à une situation pure pip + virtualenv (nr. 4) . Au lieu d'avoir une virtualenv par site, j'en ai une partagée entre une dizaine de sites. Cela fonctionne pour le moment.
J'ai également dû écrire un petit script qui vérifie le statut des paquets installés avec pip. S'il y a des mises à jour, je dois les appliquer manuellement (ce qui est bien parce que je les teste localement, dans un virtualenv local). Tout cela est encore un peu plus douloureux qu’à l’origine mais beaucoup mieux à long terme.