Paquet de mise à niveau, sans mettre à jour les dépendances à l'aide de pip?
Je suis en utilisant le pep et le virtualenv pour mon application en python. Je voudrais mettre à jour vers une nouvelle version de l'application sans toucher les dépendances. Lorsque j'utilise pip install -U
, il tente de mettre à jour tous les paquets, et même désinstalle et ré-installe la même version d'un paquet de dépendance lorsqu'il n'y a pas une nouvelle version est disponible.
J'ai aussi essayé pip install -U --no-deps
mais qui semble équivalent à la régularité de l'installer à la place d'une mise à niveau. Est-il une combinaison d'indicateurs qui permettront de faire ce que je veux?
- bonne question. Je réticulé stackoverflow.com/questions/2875232/... -- si vous ne pouvez même pas la liste des dépendances à l'avance, il semble que vous êtes coincé.
Vous devez vous connecter pour publier un commentaire.
J'ai juste essayé sur mon virtualenv projet et
pip install -U --no-deps mypackage
semble très bien fonctionner. Il suffit de télécharger mypackage et rien d'autre. Quel est votre jeu comme?pip check
par la suite pour vérifier si il des problèmes de dépendances manquantes de dépendances.Vue d'ensemble:
pip install
(sans-U
)pip install --upgrade --upgrade-strategy only-if-needed
(par défaut dans les nouvelles versions)pip install --upgrade --upgrade-strategy eager
(par défaut dans les anciennes versions)Mise à JOUR (merci à @Jéther, commentaire): Si vous utilisez la dernière version de pip, puis mettre à jour les dépendances uniquement lorsque cela est nécessaire maintenant le comportement par défaut, et vous n'avez pas besoin de faire quelque chose de spécial! La réponse ci-dessous décrit les étapes à suivre pour les anciennes versions de pip (qui fonctionne également pour les versions plus récentes, si vous voulez être portable).
Si vous voulez vraiment à ne pas toucher les dépendances, alors, en effet, le chemin à parcourir est
Mais je pense que ce que vous voulez généralement est de ne pas mettre à niveau les dépendances, sauf si c'est nécessaire. Dans ce cas, vous pouvez utiliser:
Ce jour uniquement requise si le package requiert une version plus récente que la est installé.
mypackage
dans mon python.pip install
n'sans--upgrade
?Vous avez raison. Je pensais que quand j'ai ajouté
--no-deps
il avait négligé de désinstaller la version existante. Mais je l'ai essayé à nouveau et de voir il n'y a pas de problème: