Manipulation der Umgebungsvariablen durch Subprogramm

Python in C/C++ embedden, C-Module, ctypes, Cython, SWIG, SIP etc sind hier richtig.
Antworten
Windsaer
User
Beiträge: 1
Registriert: Mittwoch 3. Juli 2019, 18:55

Hallo,

ich möchte in einem Pythonskript ein bash-File ausführen welches die Umgebungsvariablen manipuliert. Allerdings wird beim Ausführen mit os.system() bzw. subprocess.run() eine eigene Shell geöffnet. Die Umgebungsvariablen der Parent-shell ändern sich dadurch nicht.
Hat jemand eine Idee wie man die durch das bash-File geänderten Umgebungsvariablen auslesen kann, um sie auch im Pythonskript anzupassen?

Vielen Dank im Voraus

Windsaer
Sirius3
User
Beiträge: 17703
Registriert: Sonntag 21. Oktober 2012, 17:20

Benutzeravatar
__blackjack__
User
Beiträge: 12984
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Windsaer: Das hat übrigens nichts mit Shells zu tun, denn `subprocess.run()` führt Dein Bash-Skript direkt aus, ohne noch einmal eine weitere Shell dazwischen zu schieben. Grundsätzlich kann man von einem Kindprozess die Umgebungsvariablen des Elternprozesses nicht ändern. Darum auch der Lösungsansatz von Sirius3 vom Elternprozess aus auf die Umgebungsvariablen vom Kindprozess zuzugreifen.
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
Antworten