Einstellung Umgebungen, Variablen aus einem python-Skript
Ich bin mit der c-shell, und ich bin mit setenv. Ich brauche zu ausführen, eine entsprechende Befehl in einem python-Skript. Ich habe versucht, mit os.environ['JAVA_HOME'] = "/usr/local/java", die Werke aus der python-interpreter, aber wenn mein script ausgeführt von der Kommandozeile, der shell lief es im tut entsprechend neu set environment variable. Kann jemand helfen, ich bin neu in scripting, ich hoffe ich habe meine Frage klar.
Duplikat von stackoverflow.com/questions/1506010/... ?
InformationsquelleAutor smuggledPancakes | 2011-12-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie
Unterprozess.Popen
, sollte es genug, um passieren dieenv
parameter an den Konstruktor übergeben, was auch immer Sie benötigen, als ein Wörterbuch (Sie können kopieren Sie den Inhaltos.environ
und fügen Sie Ihre eigenen Umwelt-Variablen, wenn Sie wollen).InformationsquelleAutor jcollado
Erläutert in Wie zu verwenden, exportieren Sie es mit Python auf Linux, das setzen einer environment-variable, die in den Prozess (wie Sie Ihre Python-Skript), nicht Auswirkungen auf alle übergeordneten Prozesse (wie csh-Prozess, von der aus Sie führen Sie das Python-Skript).
Was Sie tun können, ist Ihr Python-Skript drucken
setenv
Befehl, und bewerten Sie dann die Ausgabe in der shell als Befehl.Beispiel:
Und Sie können einen alias einzurichten, in Ihrem
~/.cshrc
zu tun, dieeval `...`
oder nur aufrufen, direkt von Ihrem.cshrc
oder.login
(je nachdem, was Sie versuchen zu erreichen).InformationsquelleAutor Keith Thompson
Ich weiß, es ist schon eine Weile Sünden dieses Problem, aber ich löste es ein wenig anders.
Vielleicht, das ist auch nicht die schönste Lösung, aber es funktioniert.
Erstellte ich ein shell-Skript namens env.sh
Dann in meinem python-Skript namens Teilprozess.
Dies funktioniert für mich, vergessen Sie nicht, stellen Sie die env.sh ausführbare Datei durch ausführen mit "chmod +x env.sh"
env.sh
und es begann mit#!/bin/tcsh
.InformationsquelleAutor Eric Noort