Removendo o ambiente Conda


223

Quero remover um determinado ambiente criado com o conda. Como posso conseguir isso? Digamos que eu tenha um ambiente de teste ativo. Tentei, seguindo a documentação , com:

$ conda env remove

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

Eu então desativo:

$ source deactivate

Tento executar novamente o comando para removê-lo e ainda recebo o mesmo erro. o que há de errado aqui?


2
Verifique se você está executando o terminal como administrador, caso contrário, os comandos serão executados com sucesso sem gerar nenhum erro, mas o env não será removido.
सत्यमेव जयते

Respostas:


308

Você provavelmente não desativou completamente o ambiente Conda - lembre-se, o comando que você precisa usar com o Conda é conda deactivate(para versões mais antigas, use source deactivate). Portanto, pode ser aconselhável iniciar um novo shell e ativar o ambiente antes de tentar. Em seguida, desative-o.

Você pode usar o comando

conda env remove -n ENV_NAME

para remover o ambiente com esse nome. ( --nameé equivalente a -n)

Observe que você também pode colocar os ambientes em qualquer lugar que desejar, em -p /path/to/envvez de -n ENV_NAMEcriar e excluir ambientes, se desejar. Eles não precisam morar na sua instalação conda.

ATUALIZAÇÃO, 30 Jan 2019 : A partir do Conda 4.6, o conda activatecomando se torna a nova maneira oficial de ativar um ambiente em todas as plataformas. As mudanças são descritas nesta postagem no blog da Anaconda


Você está certo, meu erro ao escrever o post. Eu quis dizer source deactivate. Obrigado
Renato Damas

4
Na verdade, você pode usar conda deactivatetambém e funciona da mesma forma. Pelo menos na versão 4.4.11
Renato Damas

Obrigado. Mas não apenas deactivatepor si só, certo?
holdenweb

Sim, source deactivateouconda deactivate
Renato Damas

EnvironmentLocationNotFound: Not a conda environment: /home/user/.conda/envs/ENVIRONMENT
user924

68

Depois de verificar se o seu ambiente não está ativo, digite:

$ conda env remove --name ENVIRONMENT

3
Esta é a informação que eu precisava. Teria sido bom se conda env --helptivesse dado.
R. Schreurs

EnvironmentLocationNotFound: Not a conda environment: /home/user/.conda/envs/ENVIRONMENT
user924

1
Enviei um bug sobre falhas na atualização do texto de ajuda, e ele foi marcado como um problema fácil para iniciantes, por isso há esperança de uma correção.
holdenweb

28

Documentação oficial maneira funcionou para mim:

conda remove --name myenv --all

Ou apenas conda env remove --name myenv.

Para verificar se o ambiente foi removido, na janela do terminal ou no prompt do Anaconda, execute:

conda info --envs

A lista de ambientes exibida não deve mostrar o ambiente removido.

A pasta de ambientes anaconda3 pode listar uma pasta vazia do ambiente excluído na pasta de instalação do anaconda3, como:

/opt/anaconda3/envs

19

Existem três maneiras de conseguir isso no total. Supondo que você tenha um ambiente chamado myenv,

  1. conda env remove --name myenv, -né um atalho para --name.

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

  3. Exclua a pasta env diretamente. (Não recomendado)

    # 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
    

Se você deseja excluir o ambiente sem um prompt para permitir a verificação novamente. Use -y, atalho para --yes. (Para uso global, verifique o prompt silencioso em conda )

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

Referências

  • conda env --help
  • conda remove --help

1
E por que a exclusão direta da pasta env não é recomendada? O que poderia dar errado?
NoName 13/06


13

Primeiro você precisa desativar seu ambiente antes de removê-lo. Você pode remover o ambiente conda usando o seguinte comando

Suponha que o nome do seu ambiente seja "sample_env", você pode remover esse ambiente usando

source deactivate    
conda remove -n sample_env --all

'--all' será usado para remover todas as dependências


13

Os ambientes criados com o sinalizador --prefixou -pdevem ser removidos com o -psinalizador ( não -n ).

Por exemplo:, conda remove -p </filepath/myenvironment> --allno qual </filepath/myenvironment>é substituído por um caminho completo ou relativo ao ambiente.


1
Meu nome de ambiente incluía um espaço, como meu env . Este método conda env remove -p path/to/my\ envfuncionou enquanto conda env remove -n my\ enve conda env remove -n "my env"não funcionou .
Ben


8

Use source deactivatepara desativar o ambiente antes de removê-lo, substitua ENV_NAME pelo ambiente que você deseja remover:

source deactivate
conda env remove -n ENV_NAME

7
Uma explicação, o que um código faz e como isso soluciona o problema na pergunta, raramente falha em melhorar uma resposta.
MBT 10/11

EnvironmentLocationNotFound: Not a conda environment: /home/user/.conda/envs/ENV_NAME
user924

7

Primeiro desative o ambiente e volte ao ambiente base. Na base, você deve poder executar o comando conda env remove -n <envname>. Isso lhe dará a mensagem

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


5

se você estiver na base :

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

remova env_name por:

conda env remove -n env_name

se você já estiver no ambiente env_name :

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

desativar e remover por:

conda deactivate env_name

conda env remove -n env_name

4

Isso funcionou para mim:

conda env remove --name tensorflow

Trabalhou para mim também. conda env remove --name <name of your environment> Mais tarde, você pode excluir a pasta do ambiente do Anaconda ou do local de instalação do miniconda Anaconda\envs\<name of your environment>ouMiniconda\envs\<name of your environment>
Giriraj Pawar

1

Para remover o ambiente conda completo:

conda remove --name YOUR_CONDA_ENV_NAME --todos


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.