Удаление среды 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команда становится новым официальным способом активации среды на всех платформах. Изменения описаны в этом посте Анаконды


Вы правы, моя ошибка при написании поста. Я имел в виду 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

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


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"не стал.
Бен


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}:


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


0

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.