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 qui ont plusieurs fichiers d'exigences, c'est base.yml, local.yml, production.yml
-à- dire , etc.
Par exemple, vous trouverez ci-dessous un base.yml
fichier contenant les 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 réel est créé avec:
conda env create -f base.yml
.
Plus tard, des packages supplémentaires devront ê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éation d'un local.yml
fichier avec une définition d'importation:
channels:
dependencies:
- pip:
- boto3==1.4.4
imports:
- requirements/base.
Et puis exécutez la commande suivante :
conda install -f local.yml
.
Cela ne fonctionne pas. Des pensées?
Réponses:
Essayez d'utiliser la mise à jour de conda env :
Ou sans avoir besoin d'activer l'environnement (merci @NumesSanguis):
la source
-f
etfile.yml
. La suppression du signe égal fera fonctionner la complétion de tabulation sur le.yml
nom de fichier.--name env_name
pour ignorer toutename: foo
balise danslocal.yml
. Empêche également la nécessité d'activer myenv en premier. Commande complète:conda env update --name env_name --file local.yml
De: stackoverflow.com/a/45525593/3399066 Commentaire deLa réponse suggérée est partiellement correcte. Vous devrez ajouter l' option --prune pour désinstaller également les packages qui ont été supprimés de l'environnement.yml. Commande correcte:
la source
La réponse d'alkamid est sur les bonnes lignes, mais j'ai trouvé que Conda ne parvient pas à installer de nouvelles dépendances si l'environnement est déjà actif. La désactivation de l'environnement résout d'abord ce problème:
la source
-n <environment name>
, mais par défaut, il semble fonctionner avec l'environnement attendu (peut-être le plus récemment actif, ou simplement un choix d'environnement par défaut)