Gibt es eine Möglichkeit, die Umgebungsvariable PATH
mithilfe von Python plattformunabhängig zu ändern?
Etwas Ähnliches wie os.path.join()
?
Sie sollten in der Lage sein, os.environ
Zu ändern.
Da os.pathsep
Das Zeichen ist, um verschiedene Pfade zu trennen, sollten Sie dies verwenden, um jeden neuen Pfad anzuhängen:
os.environ["PATH"] += os.pathsep + path
oder, wenn es mehrere Pfade gibt, die zu einer Liste hinzugefügt werden müssen:
os.environ["PATH"] += os.pathsep + os.pathsep.join(pathlist)
Wie Sie bereits erwähnt haben, kann os.path.join
Auch für jeden einzelnen Pfad verwendet werden, den Sie anhängen müssen, falls Sie sie aus separaten Teilen erstellen müssen.
Bitte beachte, dass os.environ
ist eigentlich kein Wörterbuch. Es ist ein spezielles Wörterbuch - wie ein Objekt, das Umgebungsvariablen im aktuellen Prozess mithilfe von setenv festlegt.
>>> os.environ.__class__
<class os._Environ at 0x100472050>
>>> import os
>>> os.environ["HELLO"] = "WORLD"
>>> os.getenv("HELLO")
'WORLD'
Dies bedeutet, dass PATH
(und andere Umgebungsvariablen) für C-Code sichtbar sind , der im selben Prozess ausgeführt wird.
(Da Kommentare keine Formatierung enthalten können, muss ich dies in eine Antwort einfügen, aber ich denke, dass dies ein wichtiger Punkt ist. Dies ist wirklich ein Kommentar zu der Kommentar, dass es kein Äquivalent zu "Exportieren" gibt). .)
Beachten Sie beim Ändern von Umgebungsvariablen in Python, 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.