Warum kann Python keine Umgebungsvariablen sehen?

7

Ich arbeite an Debian Jessie mit Python 2. Warum kann Pythons environ Umgebungsvariablen nicht sehen, die in bash sichtbar sind?

%Vor%

Ich setze diese Umgebungsvariablen mit /etc/environment - nicht sicher, ob das relevant ist:

%Vor%

Ich musste source /etc/environment ausführen, um bash zu bekommen, um sie zu sehen, was ich für merkwürdig hielt.

UPDATE: printenv SECRET_KEY erzeugt nichts, also denke ich SECRET_KEY ist eine Shell, keine Umgebungsvariable.

    
Richard 13.08.2015, 16:38
quelle

1 Antwort

20

Sie müssen Umgebungsvariablen für untergeordnete Prozesse exportieren, um sie zu sehen:

%Vor%

Demo:

%Vor%

Sie können die Einstellung und den Export in einem Schritt kombinieren:

%Vor%

Beachten Sie, dass neue Variablen in /etc/environment nicht automatisch in Ihren vorhandenen Shells angezeigt werden, solange Sie keine neue Anmeldung haben. Für einen GUI-Desktop müssen Sie sich abmelden und erneut anmelden. Für SSH-Sitzungen müssen Sie eine neue SSH-Anmeldung erstellen. Nur dann erhalten Sie einen neuen Prozessbaum mit den vorhandenen Änderungen. Die Verwendung von source /etc/environment setzt nur 'lokale' Variablen (die Datei ist kein Skript). Siehe Wie lade ich / etc / environment ohne Neustart? auf Super Benutzer.

    
Martijn Pieters 13.08.2015, 16:39
quelle