conda: удалить все установленные пакеты из базовой / корневой среды - PullRequest
0 голосов
/ 16 октября 2018

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?

Ответы [ 2 ]

0 голосов
/ 13 марта 2019

У меня была та же проблема, что и у вас, вот что я сделал:

  1. резервное копирование моего conda-env:

    i.активируйте env, который я хочу сохранить, например, 'ml'

    ii.введите conda-env export > /path/to/save/file/environment.yml

  2. , активируйте base и верните базовый env в исходный: введите conda install --revision 0, это должно занять некоторое время ... (эта команда не вернула ВСЕ мои envs,просто BASE env)

  3. загрузить файл .yml: введите conda env create -f /path/to/save/file/environment.yml

0 голосов
/ 16 октября 2018

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

Дело не в этом, а в том, что вы не можете удалить base environment, это то, что делает флаг --all.Вы не можете удалить все пакеты в base , потому что там находится исполняемый файл conda.Вместо этого вам нужно удалить все установленные пользователем пакеты.Один из способов сделать это - вернуть вашу среду обратно в исходное состояние перед установкой каких-либо пользовательских пакетов:

> conda install --revision 0

Вы также можете искать другие предыдущие состояния, которые могут быть менее регрессивными, но все же получитьизбавьтесь от ненужных пакетов, которые вы считаете ненужными.

> conda list -n base -r

В конце вы, вероятно, захотите обновить conda сразу после этого, поскольку он также отменит все обновленияк базовым пакетам.


Ошибки, о боже!

Хотя вышесказанное - действительно правильный путь, я сталкиваюсь с ошибкой:

CondaRevisionError: Невозможно вернуться к 0, так как :: contextlib2-0.5.3-py35_0 отсутствует в repodata.

В целом, меня это беспокоит, потому что кажется, что состояние моегоСреда conda двухлетней давности больше не воспроизводится из состояния восходящих каналов.Я работал в предположении, что этот тип воспроизводимости встроен.

В любом случае, я не знаю чистого способа решить эту проблему, кроме сравнения всех пакетов ревизии 0 с вашей текущей установкой изатем удалить разницу.

...