Видалення середовища Conda


224

Я хочу видалити певне середовище, створене за допомогою конди. Як я можу цього досягти? Скажімо, у мене активне середовище testenv. Я спробував, дотримуючись документації , з:

$ conda env remove

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

Потім я його деактивую:

$ source deactivate

Я намагаюся запустити команду знову, щоб видалити її, і я все одно отримую ту ж помилку. Що тут не так?


2
Переконайтеся, що ви використовуєте термінал як адміністратор, інакше команди будуть працювати успішно, не видаючи помилок, але env не буде видалено.
सत्यमेव ज atे

Відповіді:


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команда стає новим офіційним способом активізації середовища на всіх платформах. Зміни описані в цій публікації блогу Anaconda


Ти маєш рацію, моя помилка під час написання поста. Я мав на увазі 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

Всього є три способи досягти цього. Якщо припустити, що у вас є середовище з назвою 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. (Для глобального використання перевіряйте безшумну підказку in 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

'- всі' будуть використані для усунення всіх залежностей


13

Середовища, створені за допомогою --prefixабо -pпрапор, повинні бути видалені -pпрапором ( не -n ).

Наприклад:, conda remove -p </filepath/myenvironment> --allв якій </filepath/myenvironment>заміщений повний або відносний шлях до навколишнього середовища.


1
Моє ім’я оточення містило простір, як і моя оточення . Цей метод 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}:


5

якщо ви в базі :

(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,


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.