Когда вы используете pip
для установки пакета, все необходимые пакеты также будут установлены вместе с ним (зависимости). Удаляет ли этот пакет также зависимые пакеты?
Деинсталляция пакета с помощью "pip" также удаляет зависимые пакеты?
Ответ 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. Он удалит пакет со всеми его зависимостями.