web-dev-qa-db-fra.com

Comment mettre à jour un environnement Conda existant avec un fichier .yml

Comment un environnement conda pré-existant peut-il être mis à jour avec un autre fichier .yml. Ceci est extrêmement utile lorsque vous travaillez sur des projets comportant plusieurs fichiers d’exigences, à savoir base.yml, local.yml, production.yml, etc.

Par exemple, un fichier base.yml contient les packages conda-forge, conda et pip suivants:

base.yml

name: myenv
channels:
  - conda-forge
dependencies:
  - Django=1.10.5
  - pip:
    - Django-crispy-forms==1.6.1

L’environnement actuel est créé avec: conda env create -f base.yml.

Plus tard, des paquets supplémentaires doivent être ajoutés à base.yml. Un autre fichier, par exemple local.yml, doit importer ces mises à jour.

Les tentatives précédentes pour accomplir ceci incluent:

créer un fichier local.yml avec une définition d'importation:

channels:

dependencies:
  - pip:
    - boto3==1.4.4
imports:
  - requirements/base. 

Et puis exécutez la commande: conda install -f local.yml.

Cela ne fonctionne pas. Des pensées?

68
tilikoom

Essayez d’utiliser conda env update :

source activate myenv
conda env update --file local.yml
104
alkamid

la réponse de alkamid est sur les bonnes lignes, mais j'ai constaté que Conda ne parvient pas à installer de nouvelles dépendances si l'environnement est déjà actif. Désactiver d’abord l’environnement résout ce problème:

source deactivate;
conda env update -f whatever.yml;
source activate my_environment_name; # Must be AFTER the conda env update line!
19
Dave

La réponse suggérée est partiellement correcte. Vous devez ajouter l'option - Prune pour désinstaller également les packages supprimés du fichier environment.yml. Commande correcte:

conda env update -f local.yml --Prune
12
Blink