Видалення середовища 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.