Удаление среды 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.