Упрощенный MWE => Предположим, у меня есть Anaconda и я делаю следующее:
conda create -n demo python=3.6
conda activate demo
conda install seaborn
Последняя команда устанавливает 39 новых пакетов, включая seaborn
, matplotlib
и pandas
. Теперь предположим, что прошло время, и я продолжаю настраивать свою среду и хочу явно установить matplotlib
и pandas
:
conda install matplotlib pandas
Это говорит мне «Все запрошенные пакеты уже установлены», что нормально. Однако теперь, если я решу, что мне больше не нужен seaborn
и удаляю его,
conda remove seaborn
это удалит ВСЕ 39 пакетов, которые были установлены при установке seaborn
, включая matplotlib
и pandas
, который я после этого явно установил! Как я могу избежать этой проблемы?
Я ожидаю, что conda remove seaborn
удаляет seaborn
и все его зависимости, но не удаляет любой пакет (или его зависимости), которыйбыл явно установлен до или после seaborn
. Некоторые могут сказать, просто удалить seaborn
и все 39 пакетов, а затем вручную переустановить matplotlib
и pandas
. Это работает в тривиальных случаях, но как только есть, например, 25 пакетов со сложной взаимозависимостью, это становится очень сложным и, по крайней мере, полным неудобством для обслуживания.
Как конкретный пример этого, как я могу построитьполная среда Anaconda без определенного пакета и только пакетов, которые зависят от него? Я попытался:
conda create -n test python=3.6 anaconda
conda remove libtiff # I want this to strictly only remove libtiff and its recursive dependents, but obviously this is not what happens
, но вторая строка удаляет практически все пакеты во всей среде, как и anaconda
. Есть идеи?