conda: удалить все установленные пакеты из базовой / корневой среды

1

TL: DR: Как я могу удалить все установленные пакеты из 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 среде?

  • 0
    "conda uninstall -n base --all" должна выполнить эту работу. Вы пытались выполнить эту команду, когда среда деактивирована? % деактивировать базу% conda uninstall -n base --all
  • 0
    @TinaIris Нет, это не помогло - то же самое сообщение об ошибке.
Показать ещё 1 комментарий
Теги:
conda
miniconda

1 ответ

3

По-видимому, я не могу удалить пакеты из текущей среды (?!)

Это не так, но вместо этого вы не можете удалить базовую среду, что и --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 с текущей установкой, а затем удаления разницы.

  • 0
    Я также получил кучу ошибок при возвращении к ревизии 0. Я закончил: резервное копирование переустановки, затем копирование моих и etc И envs каталогов из резервной копии.
  • 1
    Осторожнее с conda install --revision 0 Я попробовал это, и это вернуло ВСЕ мои среды, а не только основу! Не большая проблема для меня, но может иметь катастрофические последствия, если у вас нет резервных копий.
Показать ещё 6 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню