Comment puis-je utiliser une méthode de déploiement basée virtualenv sans mettre à niveau à chaque version amont?

StackOverflow https://stackoverflow.com/questions/4244241

Question

Vendredi dernier, je l'ai construit une spécification RPM pour mon projet Django. Le RPM crée un virtualenv, télécharge les dépendances via pip et met tout dans les emballages. Aujourd'hui, je l'ai découvert que BeautifulSoup 3.2 a été libéré. Heureusement, j'ai eu ma version BeautifulSoup épinglé dans le requirements.txt, donc j'ai trouvé à cause de la construction défaillante.

Maintenant une question complètement différente est la suivante: comment dois-je faire éviter des trucs de mise à niveau à l'avenir? BeautifulSoup a supprimé toutes les versions précédentes de PyPI, donc je ne peux pas télécharger une version que je l'ai fait contre testé. Le cache de téléchargement de pip ne permet pas ici non plus, puisque pip essaie toujours de vérifier PyPI premier.

Pouvez-vous recommander quelque chose pour éviter cette situation?

Était-ce utile?

La solution

Tout d'abord, il est une situation inhabituelle. Je ne l'ai jamais vu un autre paquet supprimer toutes les anciennes versions comme le fait BeautifulSoup. Je considère que le comportement plutôt hostile de l'utilisateur, sauf peut-être dans le cas d'une solution de sécurité grave.

Cela dit, si vous voulez un processus de construction fiable à l'aide pip, vous avez vraiment besoin de refléter tous les paquets sur lesquels vous comptez localement. Ce n'est pas difficile à faire; vous pouvez l'utiliser l'option de --download de pépin (ou le cache de pépin existant) pour obtenir toutes les archives tar de paquet, puis juste les jeter dans un indexé, répertoire servi Web et utiliser --find-liens dans votre fichier d'exigences à point de pépin là-bas ( ainsi que --no-index pour lui dire de ne pas utiliser PyPI).

Autres conseils

Les fichiers en question se trouve encore: il suffit de fournir l'URL directe au lieu du nom du package:

http: //www.crummy. com / software / BeautifulSoup / télécharger / 3.x / 3.0.8.tar.gz

par exemple.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top