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?
Essayez d’utiliser conda env update :
source activate myenv
conda env update --file local.yml
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!
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