Текущее поведение pip:
Представьте себе пакет Python spam. Имеет три зависимости - пакеты package1, package2 и package3. Когда пользователь устанавливает пакет spam с pip, ни одна из зависимостей не была установлена пользователем ранее, и, следовательно, все три зависимости также установлены. Когда пользователь удаляет пакет с помощью pip, удаляется только пакет spam - его зависимости остаются нетронутыми.
Интересно, можно ли реализовать другой сценарий:
В момент, когда пользователь устанавливает пакет spam с pip, пакет package1 уже был установлен пользователем ранее и, таким образом, установлены только две зависимости. Когда пользователь удаляет пакет с помощью pip, он может выбрать, следует ли удалять зависимости, которые были установлены во время установки пакета spam. То есть package1 уже присутствовал, мы не хотим его удалять, однако package2 и package3 были установлены во время установки spam, и пользователь может явно сказать: «Я хочу удалить зависимости этого пакета, которые были установлены во время установка пакета ".
Мотивация этого заключается в том, что существует пакет Python, который имеет очень много зависимостей, и мне интересно, есть ли какой-нибудь разумный способ позволить пользователю очистить свои зависимости после удаления.






Используйте autoremove вместо uninstall:
pip install pip-autoremove
pip-autoremove spam -y
Где spam - ваш пакет.
@FlyingTeller, это именно та ситуация. package1 может использоваться любыми имеющимися у меня программами Python, поэтому я не хочу удалять package1 при удалении spam.
Как pip-autoremove обнаружит, что у меня есть какой-то скрипт, который выполняет import package1?
Я не думаю, что OP хочет этого.
pip-autoremoveудаляет «неиспользуемые зависимости», ноpackage1может быть не зависимостью какого-то другого пакета, а просто тем, что используется в сценариях, написанных OP.