Como um ambiente conda pré-existente pode ser atualizado com outro arquivo .yml. Isso é extremamente útil ao trabalhar em projetos que possuem vários arquivos de requisitos, ou seja base.yml, local.yml, production.yml
, etc.
Por exemplo, abaixo está um base.yml
arquivo com pacotes conda-forge, conda e pip:
base.yml
name: myenv
channels:
- conda-forge
dependencies:
- django=1.10.5
- pip:
- django-crispy-forms==1.6.1
O ambiente real é criado com:
conda env create -f base.yml
.
Posteriormente, pacotes adicionais precisam ser adicionados ao base.yml
. Outro arquivo, por exemplo local.yml
, precisa importar essas atualizações.
Tentativas anteriores para fazer isso incluem:
criando um local.yml
arquivo com uma definição de importação:
channels:
dependencies:
- pip:
- boto3==1.4.4
imports:
- requirements/base.
E depois executar o comando:
conda install -f local.yml
.
Isso não funciona. Alguma ideia?
Respostas:
Tente usar o conda env update :
Ou sem a necessidade de ativar o ambiente (obrigado @NumesSanguis):
fonte
-f
efile.yml
. A remoção do sinal de igual fará com que a conclusão da guia funcione no.yml
nome do arquivo.--name env_name
para ignorar qualquername: foo
tag emlocal.yml
. Também evita a necessidade de ativar o myenv primeiro. Comando completo:conda env update --name env_name --file local.yml
De: comentário de stackoverflow.com/a/45525593/3399066A resposta sugerida está parcialmente correta. Você precisará adicionar a opção --prune para desinstalar também os pacotes que foram removidos do environment.yml. Comando correto:
fonte
A resposta da alkamid está nas linhas corretas, mas descobri que a Conda falha ao instalar novas dependências se o ambiente já estiver ativo. Desativar o ambiente primeiro resolve isso:
fonte
-n <environment name>
, mas por padrão, ele parece funcionar com o ambiente esperado (talvez o mais ativo recentemente, ou apenas uma escolha ambiente padrão)