Hallo Ich habe versucht, Umgebungsvariable mit Python festlegen. Meine Python-Datei sieht so aus.Einstellung Umgebungsvariable mit Subshell
#!/usr/bin/python2.7
import os
os.system("check")
Bitte sehen Sie hier Dateiprüfung ist Csh-Datei, die so etwas ist.
#!usr/bin/csh
setenv VARIABLE 1
aber wenn ich aus meiner Shell-Umgebungsvariable überprüfen, ist nicht festgelegt. Ich verstehe, dass wenn ich os.system aufrufen, es eine andere Unterschale macht und Variable dort setzt. Ich versuchte, direkt csh-Datei und das gleiche Problem zu laufen. Ich habe es auch versucht.
os.system("setenv VARIABLE 1")
es löst Fehler Befehl nicht gefunden. Das war mein früherer Grund, den Befehl in diff-Datei zu setzen und aufzurufen.
Alles, was ich tun müssen, um die Umgebungsvariable aus meinem Python-Skript in aktuell Shell gesetzt
Sie können nicht. Ein untergeordneter Prozess kann die Umgebung seines übergeordneten Elements nicht ändern. – chepner
Related (wäre doppelt, aber für den Unterschied zwischen csh und bash): https://stackoverflow.com/questions/41708458/assign-environment-variables-from-bash-script-to-current-session-from-python - Beachten Sie die Verwendung von NUL-begrenzten Streams für die Sicherheit im Hinblick auf beliebige Inhalte. –
Ich denke, was Sie versuchen zu tun, ist nicht möglich - https://stackoverflow.com/questions/263005/isit-possible-to-change-the-umwelt-of-parent-process-in- Python. Wenn Sie stattdessen versuchen, eine Umgebungsvariable für eine neue Shell festzulegen, sieht es so aus, als würde die Einstellung 'os.environ [' VARIABLE '] = 1' funktionieren. (zumindest mit 'subprocess') – OldGeeksGuide