Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

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

$ 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.

Ответ 2

Вы можете установить и использовать утилиту pip-autoremove для удаления пакета и неиспользуемых зависимостей.

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

Ответ 3

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

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

это работало на pip 1.5.4

Ответ 4

И для хорошей меры тоже. Рассмотрим сценарии, в которых зависимости пересекаются с другими установленными вами пакетами. Вам лучше замораживать файл requirements.txt с каждой новой установкой и сравнивать предыдущие версии требований .txt, чтобы вручную удалять зависимости.

Ответ 5

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