Удаление среды Conda

225

Я хочу удалить определенную среду, созданную с помощью conda. Как я могу этого достичь? Допустим, у меня активная среда тестирования. Я попытался, следуя документации , с:

$ conda env remove

CondaEnvironmentError: cannot remove current environment. deactivate and run conda remove again

Затем я деактивирую это:

$ source deactivate

Я пытаюсь снова запустить команду, чтобы удалить его, и я все еще получаю ту же ошибку. Что здесь не так?

Ренато Дамас
источник
2
Убедитесь, что вы работаете с терминалом как администратор, иначе команды будут выполняться без ошибок, но env не будет удален.
जयते जयते

Ответы:

310

Вы, вероятно, не полностью деактивировали среду Conda - помните, команда, которую вам нужно использовать с Conda, - это conda deactivate(для более старых версий используйте source deactivate). Поэтому может быть целесообразно запустить новую оболочку и активировать среду в ней, прежде чем пытаться. Затем отключите его.

Вы можете использовать команду

conda env remove -n ENV_NAME

удалить среду с этим именем. ( --nameэквивалентно -n)

Обратите внимание, что вы также можете размещать среды там, где хотите, -p /path/to/envа не -n ENV_NAMEпри создании и удалении сред, если хотите. Они не должны жить в вашей установке Конда.

ОБНОВЛЕНИЕ, 30 января 2019 года : начиная с Conda 4.6 и далее эта conda activateкоманда становится новым официальным способом активации среды на всех платформах. Изменения описаны в этом посте Анаконды

holdenweb
источник
Вы правы, моя ошибка при написании поста. Я имел в виду source deactivate. Спасибо
Ренато Дамас
4
На самом деле вы можете использовать, conda deactivateи это работает аналогично. По крайней мере, в версии 4.4.11
Ренато Дамас
Спасибо. Но не только сам deactivateпо себе, верно?
Holdenweb
Да, source deactivateилиconda deactivate
Ренато Дамас
EnvironmentLocationNotFound: Not a conda environment: /home/user/.conda/envs/ENVIRONMENT
user924
68

Убедившись, что ваша среда не активна, введите:

$ conda env remove --name ENVIRONMENT
Ренато Дамас
источник
3
Это информация, которая мне нужна. Было бы хорошо, если conda env --helpбы дал это.
Р.
EnvironmentLocationNotFound: Not a conda environment: /home/user/.conda/envs/ENVIRONMENT
user924
1
Я отправил сообщение об ошибке при обновлении текста справки, и оно было помечено как простая для начинающих, так что есть надежда на исправление.
holdenweb
28

Официальная документация кстати у меня сработала:

conda remove --name myenv --all

Или просто conda env remove --name myenv.

Чтобы убедиться, что среда была удалена, в окне терминала или в подсказке Anaconda выполните:

conda info --envs

Отображаемый список сред не должен отображать удаленную среду.

Ваша папка окружения anaconda3 может содержать пустую папку удаленного окружения в папке установки anaconda3, например:

/opt/anaconda3/envs
Харви
источник
19

Всего есть 3 способа добиться этого. Предполагая, что у вас есть среда с именем myenv,

  1. conda env remove --name myenv, -nЭто ярлык для --name.

  2. conda remove --name myenv --all,

  3. Удалите папку env напрямую. (Не рекомендуется)

    # list environments and their locations
    conda env list
    # or
    # conda info --envs
    
    # delete the folder listed
    rm -rf /Users/username/.local/share/conda/envs/myenv

Если вы хотите удалить среду без запроса, чтобы вы могли проверить еще раз. Используйте -y, ярлык для --yes. (Для глобального использования проверьте молчаливую подсказку в conda )

conda env remove -n myenv -y
conda remove -n myenv --all -y

Ссылки

  • conda env --help
  • conda remove --help
Simba
источник
1
И почему удаление папки env напрямую не рекомендуется? Что возможно могло пойти не так?
NoName
14

Вы можете попробовать следующее: Откройте командную строку anaconda и введите

conda remove --name myenv --all

Это удалит всю среду.

Дополнительная информация: docs.conda.io> Управление средами.

Мухамад Мохсин
источник
13

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

Предположим, что ваша среда называется «sample_env», вы можете удалить эту среду, используя

source deactivate    
conda remove -n sample_env --all

«--all» будет использоваться для удаления всех зависимостей

Шрилеха Палепу - Интел
источник
13

Среды, созданные с флагом --prefixили, -pдолжны быть удалены с -pфлагом ( не -n ).

Например:, conda remove -p </filepath/myenvironment> --allв котором </filepath/myenvironment>подставляется полный или относительный путь к среде.

Крис Киф
источник
1
Мое имя окружения включало пробел, как мой env . Этот метод conda env remove -p path/to/my\ envработал пока conda env remove -n my\ envи conda env remove -n "my env"не стал.
Бен
11

Моя среда называется: тест

conda remove -n test --all
CodeUrLife
источник
8

Используйте source deactivateдля деактивации среды перед ее удалением, замените ENV_NAME средой, которую вы хотите удалить:

source deactivate
conda env remove -n ENV_NAME
Джейсон
источник
7
Объяснение, что делает код и как это решает проблему в вопросе, редко не может улучшить ответ.
MBT
EnvironmentLocationNotFound: Not a conda environment: /home/user/.conda/envs/ENV_NAME
user924
7

Сначала отключите среду и вернитесь к базовой среде. С базы вы сможете запустить команду conda env remove -n <envname>. Это даст вам сообщение

Remove all packages in environment C:\Users\<username>\AppData\Local\Continuum\anaconda3\envs\{envname}:

Srini
источник
6

если вы находитесь в базе :

(base) HP-Compaq-Elite-8300-CMT:~$ 

удалить env_name с помощью:

conda env remove -n env_name

если вы уже находитесь в среде env_name :

(env_name) HP-Compaq-Elite-8300-CMT:~$ 

деактивировать, затем удалить:

conda deactivate env_name

conda env remove -n env_name
Шилпа Шинде
источник
4

Это сработало для меня:

conda env remove --name tensorflow
Арман Самими
источник
У меня тоже сработало. conda env remove --name <name of your environment> Позже вы можете удалить папку среды из Anaconda или места установки miniconda Anaconda\envs\<name of your environment>илиMiniconda\envs\<name of your environment>
Giriraj Pawar
1

Чтобы удалить полную среду conda:

conda удалить - имя YOUR_CONDA_ENV_NAME - все

Бхадру Бхукья
источник
0

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

Просто позвоните Конде деактивировать https://github.com/conda/conda/issues/7296#issuecomment-389504269

Джаффер Аль-Дельфи
источник