Gibt es eine Möglichkeit, die PATH
Umgebungsvariable mithilfe von Python plattformunabhängig zu ändern ?
Ähnliches os.path.join()
?
Gibt es eine Möglichkeit, die PATH
Umgebungsvariable mithilfe von Python plattformunabhängig zu ändern ?
Ähnliches os.path.join()
?
Sie sollten in der Lage sein zu ändern os.environ
.
Da os.pathsep
es sich bei dem Zeichen um das Trennen verschiedener Pfade handelt, sollten Sie dies verwenden, um jeden neuen Pfad anzuhängen:
os.environ["PATH"] += os.pathsep + path
oder, wenn einer Liste mehrere Pfade hinzugefügt werden müssen:
os.environ["PATH"] += os.pathsep + os.pathsep.join(pathlist)
Wie Sie bereits erwähnt haben, os.path.join
kann es auch für jeden einzelnen Pfad verwendet werden, den Sie anhängen müssen, falls Sie sie aus separaten Teilen erstellen müssen.
os.pathsep
ich erwähnt habe (spezifisch für PATH)?os.path.sep != os.pathsep
.Bitte beachten Sie, dass
os.environ
dies eigentlich kein Wörterbuch ist. Es ist ein besonderer dictionary- wie Objekt , das tatsächlich Umgebungsvariablen im aktuellen Prozess setzt mit setenv .Dies bedeutet , dass
PATH
(und andere Umgebungsvariablen) wird im gleichen Prozess zu C - Code ausführen sichtbar.(Da Kommentare keine Formatierung enthalten können, muss ich dies in eine Antwort einfügen, aber ich denke, es ist ein wichtiger Punkt. Dies ist wirklich ein Kommentar zu dem Kommentar, dass es kein Äquivalent zu 'Export' gibt .)
quelle
Die Einschränkung beim Ändern von Umgebungsvariablen in Python besteht darin, dass es kein Äquivalent zum Shell-Befehl "export" gibt. Es gibt keine Möglichkeit, Änderungen in den aktuellen Prozess einzufügen, sondern nur untergeordnete Prozesse.
quelle
os.system
,os.popen
odersubprocess.Popen
sollte dann von der Python - Anwendung verwendet werden , um andere Prozesse zu starten. Ansonsten ist es ziemlich sinnlos.export
bewirkt, dass eine Variable in die Umgebung aller untergeordneten Prozesse kopiert wird, hat jedoch keine Auswirkungen auf den übergeordneten Prozess.