Wie kann eine vorhandene Conda-Umgebung mit einer anderen .yml-Datei aktualisiert werden? Dies ist äußerst hilfreich, wenn Sie an Projekten mit mehreren Anforderungsdateien arbeiten, z. B. base.yml, local.yml, production.yml
usw.
Im Folgenden finden Sie beispielsweise eine base.yml
-Datei mit den Paketen conda-forge, conda und pip:
base.yml
name: myenv
channels:
- conda-forge
dependencies:
- Django=1.10.5
- pip:
- Django-crispy-forms==1.6.1
Die aktuelle Umgebung wird erstellt mit: conda env create -f base.yml
.
Später müssen zusätzliche Pakete zu base.yml
hinzugefügt werden. Eine andere Datei, beispielsweise local.yml
, muss diese Aktualisierungen importieren.
Bisherige Versuche, dies zu erreichen, umfassten:
erstellen einer local.yml
-Datei mit einer Importdefinition:
channels:
dependencies:
- pip:
- boto3==1.4.4
imports:
- requirements/base.
Führen Sie anschließend den folgenden Befehl aus: conda install -f local.yml
.
Das funktioniert nicht. Irgendwelche Gedanken?
Versuchen Sie es mit conda env update :
source activate myenv
conda env update --file local.yml
die Antwort von alkamid stimmt, aber ich habe festgestellt, dass Conda keine neuen Abhängigkeiten installiert, wenn die Umgebung bereits aktiv ist. Durch Deaktivieren der Umgebung wird Folgendes behoben:
source deactivate;
conda env update -f whatever.yml;
source activate my_environment_name; # Must be AFTER the conda env update line!
Die vorgeschlagene Antwort ist teilweise richtig. Sie müssen die Option - Prune hinzufügen, um auch Pakete zu deinstallieren, die aus der Datei environment.yml entfernt wurden. Richtiger Befehl:
conda env update -f local.yml --Prune