webentwicklung-frage-antwort-db.com.de

So aktualisieren Sie eine vorhandene Conda-Umgebung mit einer .yml-Datei

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?

68
tilikoom

Versuchen Sie es mit conda env update :

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

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!
19
Dave

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
12
Blink