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


Cela a été demandé ici mais jamais répondu.

Comment un environnement de conda 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 de besoins, à savoir base.yml, local.yml, production.yml, etc.

Par exemple, ci-dessous est un base.yml Le fichier contient des packages conda-forge, conda et pip:

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 packages supplémentaires doivent être ajoutés à base.yml. Un autre fichier, disons local.yml, doit importer ces mises à jour.

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

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

channels:

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

Et puis lancez la commande: conda install -f local.yml.

Cela ne fonctionne pas. Des pensées?


17
2018-02-20 19:32


origine


Réponses:


Essayez d'utiliser conda env update:

source activate myenv
conda env update -f=local.yml

25
2018-05-09 15:26



La réponse de alkamid est sur la bonne voie, mais j'ai constaté que Conda ne parvient pas à installer de nouvelles dépendances si l'environnement est déjà actif. Désactiver l'environnement résout d'abord ceci:

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

5
2017-09-08 10:23