web-dev-qa-db-fra.com

La désinstallation d'un paquet avec "pip" supprime-t-elle aussi les paquets dépendants?

Lorsque vous utilisez pip pour installer un package, tous les packages requis seront également installés avec celui-ci (dépendances). La désinstallation de ce package supprime-t-elle également les packages dépendants?

88
Hossein

Non, les packages de dépendances ne sont pas désinstallés:

$ pip install specloud
$ pip freeze

figleaf == 0.6.1
nez == 1.1.2
pinocchio == 0,3
specloud == 0.4.5 

$ pip uninstall specloud
$ pip freeze

figleaf == 0.6.1
nez == 1.1.2
pinocchio == 0,3

Comme vous pouvez le constater, tous les packages sont toujours présents, mais pas le package specloud.

52
BernardoFire

Vous pouvez installer et utiliser l'utilitaire pip-autoremove pour supprimer un paquet plus les dépendances inutilisées.

# install pip-autoremove
pip install pip-autoremove
# remove "somepackage" plus its dependencies:
pip-autoremove somepackage -y
144
bwv549

j'ai supprimé avec succès les dépendances d'un paquet en utilisant cette ligne bash:

for dep in $(pip show somepackage | grep Requires | sed 's/Requires: //g; s/,//g') ; do pip uninstall -y $dep ; done

cela a fonctionné sur le pip 1.5.4

6
linibou

Vous pouvez essayer https://github.com/cls1991/pef . Il supprimera le paquet avec ses dépendances.

0
cls1991