webentwicklung-frage-antwort-db.com.de

Wie setze ich bestimmte Umgebungsvariablen, wenn ich die Conda-Umgebung aktiviere?

Weiß jemand, wie Umgebungsvariablen beim Aktivieren eines Env in Conda automatisch festgelegt werden? Ich habe versucht, */bin/activate zu bearbeiten, aber dadurch werden die neuen Umgebungsvariablen für jede neu erstellte Umgebung hinzugefügt. Ich möchte Umgebungsvariablen festlegen, die für jede Umgebung spezifisch sind.

34
PythonRunner

Verwenden Sie die Dateien $CONDA_PREFIX/etc/conda/activate.d und $CONDA_PREFIX/etc/conda/deactivate.d, wo $CONDA_PREFIX ist der Pfad zur Umwelt.

Siehe Abschnitt zum Verwalten von Umgebungen in der offiziellen Dokumentation als Referenz.

48
asmeurer

Die akzeptierten Antworten (conda/activate.d Und conda/deactivate.d) Funktionieren gut genug, aber es ist unpraktisch, wenn die Umgebungsvariablen versionskontrolliert werden sollen, ohne das Ganze Umgebung in die Versionskontrolle zu. Im Allgemeinen möchten Sie nur die Datei environment.yml In der Versionskontrolle speichern.

(Ich verstehe, dass dies nicht für alle Projekte gilt. Manchmal liegt der Grund für die Verwendung von Umgebungsvariablen darin, zu verhindern, dass bestimmte Konfigurationen in der Versionskontrolle gespeichert werden. )

Meine Präferenz (unter Windows, aber dasselbe Prinzip würde unter Linux gelten) ist die Erstellung einer (versionsgesteuerten) activate.cmd - Datei im Stammverzeichnis des Projektverzeichnisses, die die Umgebungsvariablen festlegt und dann conda's aufruft eigenes activate.bat Skript.

Beispiel (eine projektspezifische Pylint-Konfiguration):

set PYLINTRC=%cd%\pylintrc
@activate.bat %cd%\env

Beachten Sie, dass Sie unter Windows mindestens die Umgebungsvariablen festlegen müssen, bevor Sie activate.bat Aufrufen , da der Aufruf von activate.bat Niemals erfolgt kehrt zur aufrufenden Batch-Datei zurück. Sie müssen Ihrem eigenen Skript auch einen anderen Namen als activate.bat Geben, um eine Rekursion zu vermeiden. Aus diesem Grund habe ich die Erweiterung cmd gewählt (die in diesem Kontext von Windows als Batchdatei behandelt wird).

7
Ian Goldby

Für virtualenv unter Ubuntu habe ich die folgenden Schritte ausgeführt, bei denen meine virtuellen Umgebungsnamen my_env und meine Umgebungsvariablen, die ich beibehalten möchte, VAR_A und VAR_B sind:

virtualenv my_env
vim my_env/bin/activate

Dies öffnet die Datei und Sie können Ihre Umgebungsvariablen wie folgt an das Ende der Datei anhängen:

# This is me env variables to persist
export VAR_A=/home/developer/my_workspace/var_a
export VAR_B=/home/developer/my_workspace/var_b

Beenden Sie dann die Datei.

Aktivieren Sie Ihre virtuelle Umgebung mit

source my_env/bin/activate

Dann sollten Ihre Umgebungsvariablen gut sein. Kann wie folgt überprüfen:

printenv | grep VAR_
VAR_B=/home/developer/my_workspace/var_b
VAR_A=/home/developer/my_workspace/var_a
3
jnmcclai