it-swarm.com.ru

Удаление пакета с помощью "pip" также удаляет зависимые пакеты?

Когда вы используете pip для установки пакета, все необходимые пакеты также будут установлены вместе с ним (зависимости). Удаление этого пакета также удаляет зависимые пакеты?

88
Hossein

Нет, он не удаляет пакеты зависимостей:

$ pip install specloud
$ pip freeze

фиговый листок == 0.6.1
== нос 1.1.2
Пиноккио == 0,3
specloud == 0.4.5 

$ pip uninstall specloud
$ pip freeze

фиговый листок == 0.6.1
== нос 1.1.2
Пиноккио == 0,3

Как видите, все пакеты все еще там, но не сам пакет specloud.

52
BernardoFire

Вы можете установить и использовать утилиту pip-autoremove , чтобы удалить пакет плюс неиспользуемые зависимости.

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

я успешно удалил зависимости пакета, используя эту строку:

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

это сработало на пипе 1.5.4

6
linibou

Вы можете попробовать https://github.com/cls1991/pef . Он удалит пакет со всеми его зависимостями.

0
cls1991