Como posso renomear um ambiente conda?

284

Eu tenho um ambiente conda chamado old_name, como posso mudar seu nome para new_namesem quebrar as referências?

pkowalczyk
fonte
Veja também este post sobre como clonar um ambiente
conda

Respostas:

458

Você não pode.

Uma solução alternativa é criar um ambiente clone e remover original:

(lembre-se de desativar o ambiente atual deactivateno Windows e source deactivateno macOS / Linux)

conda create --name new_name --clone old_name
conda remove --name old_name --all # or its alias: `conda env remove --name old_name`

Existem várias desvantagens desse método:

  1. ele baixa novamente os pacotes - você pode usar o --offlinesinalizador para desativá-lo,
  2. tempo consumido na cópia de arquivos do ambiente,
  3. uso temporário de disco duplo.

Há um problema em aberto solicitando esse recurso.

pkowalczyk
fonte
90
booooo por que não se pode renomear um ambiente conda?
Charlie Parker
6
de modo a deixar um trabalho para aqueles que Conda garfo e tornando-os compreender muito mais a caminho: P: D
Saravanabalagi Ramachandran
3
Outra maneira é clonar o ambiente conda create --name new_name --clone old_namee remover o antigo.
Y0da 22/11
4
Palavra de aviso - tentei fazer isso e me deparei com erros bizarros - .bashrcnão funcionava mais, e tentar executar pytestfalharia, tentando fazer referência ao ambiente agora removido. Tentei novas conchas e reiniciei sem sorte. Acabou tendo que explodir o novo ambiente e começar com uma instalação limpa. Mais lento, mas parece realmente funcionar agora.
dwanderson
3
@dwanderson +5000 como eu tentaria usar esta resposta, mas, em vez disso, vou apenas puxar o bandaid e recriar o meu env mal nomeado do zero.
bgoodr
13

Com base no comentário útil de dwanderson , pude fazer isso em uma única linha do Bash:

conda create --name envpython2 --file <(conda list -n env1 -e )

Meu env mal nomeado era "env1" e o novo que desejo clonar é "envpython2".

bgoodr
fonte
1
Ocorreu um erro ao dizer PackagesNotFoundError: The following packages are not available from current channelscom este script. Esse script provavelmente funciona apenas quando você não possui pacotes instalados com o pip e que não estão disponíveis no conda no ambiente existente?
Yuxuan Chen
-41

Basta abrir a pasta "\ Anaconda \ envs" e renomeá-la.

Antes de renomear antes de renomear

Após renomear depois de renomear

mengLV LI
fonte
13
Esta resposta quebra jupyter. Jupyter relata "caminho não encontrado" ao tentar iniciar o kernel python.
MD004 29/10
5
Existe um grande risco de quebrar o meio ambiente #
FabienP 30/10
2
não faça isso.
BenP 15/10/19
uma razão pela qual é uma má idéia - existem arquivos dentro do diretório env / name que contêm o caminho absoluto para esse diretório. Se você mover o diretório, o caminho não funcionará mais, pois aponta para o diretório antigo que não existe mais: envs / ds_tensorflow / Lib / site-packages / sipconfig.py: 'default_bin_dir': 'C: / Users / me / miniconda3 / envs / ds_tensorflow ', envs / ds_tensorflow / Lib / site-packages / sipconfig.py:' default_mod_dir ':' C: / Usuários / me / miniconda3 / envs / ds_tensorflow \\ Lib \\ site-packages ',
Donald S