base
? Я установил кучу пакетов машинного обучения в моей base
среде conda.
Теперь я создал среду ml
для машинного обучения и хочу сбросить base
среду, удалив все установленные там пакеты.
Я пробовал:
% activate base
% conda uninstall -n base --all
CondaEnvironmentError: cannot remove current environment. deactivate and run conda remove again
По-видимому, я не могу удалить пакеты из текущей среды (?!), поэтому сначала переключитесь в мою среду ml
:
% source activate ml
% conda uninstall -n base --all
CondaEnvironmentError: cannot remove root environment,
add -n NAME or -p PREFIX option
Верно, я буду использовать -p
затем...
% conda uninstall -p ~/.local/share/miniconda3 --all
CondaEnvironmentError: cannot remove root environment,
add -n NAME or -p PREFIX option
Как удалить все установленные пакеты в base
или root
среде?
По-видимому, я не могу удалить пакеты из текущей среды (?!)
Это не так, но вместо этого вы не можете удалить базовую среду, что и --all
флаг --all
. Вы не можете удалить все пакеты в базе, потому что там, где работает исполняемый файл conda. Вместо этого вы хотите удалить все установленные пользователем пакеты. Один из способов сделать это - вернуть среду обратно в исходное состояние перед установкой любых пакетов пользователей:
> conda install --revision 0 --dry-run
Примечание. Я бросаю --dry-run
чтобы люди не слепо копировали -r un this, не зная, что он будет делать. Удалите этот флаг, если вы действительно хотите нажать спусковой крючок.
Вы также можете искать другие предыдущие состояния, которые могут быть менее регрессионными, но все же избавиться от любых пакетов, которые, по вашему мнению, вы излишне накапливали.
> conda list -n base -r
В конце концов, вы, вероятно, захотите обновить conda
сразу.
Хотя выше это действительно правильный путь, я сталкиваюсь с ошибкой:
CondaRevisionError: не может вернуться к 0, так как :: contextlib2-0.5.3-py35_0 не находится в repodata.
Как ни в стороне, меня это беспокоит, потому что это, по-видимому, указывает на то, что состояние моей среды конда с двух лет назад больше не воспроизводится из состояния восходящих каналов. Я работал в предположении, что этот тип воспроизводимости встроен.
Во всяком случае, я не знаю чистого способа решить эту проблему, кроме сравнения всех пакетов версии 0 с текущей установкой, а затем удаления разницы.
etc
И envs
каталогов из резервной копии.
conda install --revision 0
Я попробовал это, и это вернуло ВСЕ мои среды, а не только основу! Не большая проблема для меня, но может иметь катастрофические последствия, если у вас нет резервных копий.