158 votes

Contourner la demande de confirmation pour la désinstallation de pip

J'essaie de désinstaller tous les paquets django dans mon environnement superutilisateur pour m'assurer que toutes les dépendances de mes applications web sont installées dans mon virtualenv.

sudo su
sudo pip freeze | grep -E '^django-' | xargs pip -q uninstall

Mais Pip veut confirmer chaque désinstallation de paquetage, et il ne semble pas y avoir de fonction -y pour pip. Existe-t-il un meilleur moyen de désinstaller un lot de modules python ? Est-ce qu'il y a une meilleure façon de désinstaller un lot de modules python ? rm -rf .../site-packages/ une bonne façon de procéder ? Existe-t-il une alternative à easy_install ?

Alternativement, serait-il préférable de forcer pip à installer toutes les dépendances dans le virtualenv plutôt que de s'appuyer sur les modules python du système pour satisfaire ces dépendances, par exemple. pip --upgrade install mais en forçant même tout aussi vieux qui doivent être installées pour remplacer les modules du système. J'ai essayé d'activer mon virtualenv et ensuite pip install --upgrade -r requirements.txt et cela semble installer les dépendances, même celles qui existent dans mon chemin système, mais je ne peux pas être sûr que c'est parce que mes modules système étaient anciens. Et je ne peux pas savoir si c'est parce que mes modules système étaient anciens. man pip ne semble pas garantir ce comportement (c'est-à-dire que l'installation de l'option même d'un paquet qui existe déjà dans le système site-packages).

331voto

gbozee Points 2223

À partir de la version 7.1.2 de pip, vous pouvez exécuter pip uninstall -y <python package(s)>

pip uninstall -y package1 package2 package3

ou à partir du fichier

pip uninstall -y -r requirements.txt

71voto

Kevin J. Rice Points 515

Pip n'inclut pas l'option --yes (à partir de la version 1.3.1).

SOLUTION : la pipe, c'est oui !

$ sudo ls  # enter pw so not prompted again
$ /usr/bin/yes | sudo pip uninstall pymongo

9voto

akilesh raj Points 139

Si vous souhaitez désinstaller tous les paquets de requirements.txt ,

pip uninstall -y -r requirements.txt

2voto

Miguel Silva Points 162

Sur www.saturncloud.io Les carnets Jupiter peuvent être utilisés de cette manière :

!yes | pip uninstall tensorflow
!yes | pip uninstall gast
!yes | pip uninstall tensorflow-probability

1voto

Lakshman Prasad Points 24002

Alternativement, serait-il préférable de forcer pip à installer toutes les dépendances dans le virtualenv plutôt que de compter sur les modules python du système pour satisfaire ces dépendances,

Oui. Ne touchez pas trop aux paquets installés par le système intégré. De nombreux paquets système, en particulier dans OS X (même les variétés debian et dérivées) dépendent trop d'eux.

pip --upgrade install, mais en forçant l'installation de versions tout aussi anciennes pour remplacer les modules du système.

Il ne devrait pas y avoir de problème s'il y a quelques paquets supplémentaires installés dans le venv qui sont déjà présents dans le paquet système, en particulier s'ils sont de versions différentes. C'est là tout l'intérêt de virtualenv.

J'ai essayé d'activer mon virtualenv et ensuite pip install --upgrade -r requirements.txt et cela semble installer les dépendances, même celles qui existent dans mon chemin système, mais je ne peux pas être sûr que c'est parce que mes modules système étaient anciens. Et man pip ne semble pas garantir ce comportement (c'est-à-dire l'installation de la même version d'un paquet qui existe déjà dans le site-packages du système).

Non, il n'installe pas les paquets déjà présents dans l'installation principale, à moins que vous n'ayez utilisé l'option --no-site-packages pour le créer, ou bien les versions requises et actuelles sont différentes.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X