source scripts subproces - best practise ?
Verfasst: Freitag 22. Mai 2026, 10:19
Hallo miteinander,
Ich komme nicht aus der Python Welt, also sorry für die Frage ...
Der Kontext worum es geht ist CI, also pure Terminal / Shell Anwendungen
leider wird unser Build-system immer komplexer -> man muss befehle mit zig Argumenten aufrufen, die sich keiner merken kann, aber eigentlich klar sind, wenn man das System kennt.
leider wird die Logik auch immer komplexer und ich mag PowerShell und komplexe Windows Batches nicht (eh doof weil nicht Plattform übergreifend)
deshalb -> Python.
das nur als Einleitung, sorry
Mein Problem:
bevor ich meine Befehle abfeuern kann, muss ich oft generierte Batchfiles "sourcen" also "call <ziemlich komplexer pfad hier>\XXX.bat"
typische Beispiele sind vcvars.bat / conanbuild.bat
die meisten Batches setzen nur Environment variables
Wie löst man das eigentlich elegant in Kombination mit Python und subprocess?
Der erste Impuls wäre eine eigene Batch zu generieren / schreiben und dann auszuführen.
find ich aber nicht ganz so elegant.
Gibt's da was anderes ?
kann man in Python eine Batch ausführen und danach die Environment variablen irgendwie abfragen / speichern?
Gibt's sowas wie eine Terminal Abstraktion, den man Befehle quasi senden kann, die dann in der selben Session ausgeführt werden?
Leider rufen grad vcvars.bat und conanbuild.bat andere Batches auf , so das die Batches parsen und direkt ein Environment erzeugen wahnsinnig komplex werden würde.
conan generiert ein env file, was man parsen kann, aber eben nur conan. ich bräuchte was generisches
Ich komme nicht aus der Python Welt, also sorry für die Frage ...
Der Kontext worum es geht ist CI, also pure Terminal / Shell Anwendungen
leider wird unser Build-system immer komplexer -> man muss befehle mit zig Argumenten aufrufen, die sich keiner merken kann, aber eigentlich klar sind, wenn man das System kennt.
leider wird die Logik auch immer komplexer und ich mag PowerShell und komplexe Windows Batches nicht (eh doof weil nicht Plattform übergreifend)
deshalb -> Python.
das nur als Einleitung, sorry
Mein Problem:
bevor ich meine Befehle abfeuern kann, muss ich oft generierte Batchfiles "sourcen" also "call <ziemlich komplexer pfad hier>\XXX.bat"
typische Beispiele sind vcvars.bat / conanbuild.bat
die meisten Batches setzen nur Environment variables
Wie löst man das eigentlich elegant in Kombination mit Python und subprocess?
Der erste Impuls wäre eine eigene Batch zu generieren / schreiben und dann auszuführen.
find ich aber nicht ganz so elegant.
Gibt's da was anderes ?
kann man in Python eine Batch ausführen und danach die Environment variablen irgendwie abfragen / speichern?
Gibt's sowas wie eine Terminal Abstraktion, den man Befehle quasi senden kann, die dann in der selben Session ausgeführt werden?
Leider rufen grad vcvars.bat und conanbuild.bat andere Batches auf , so das die Batches parsen und direkt ein Environment erzeugen wahnsinnig komplex werden würde.
conan generiert ein env file, was man parsen kann, aber eben nur conan. ich bräuchte was generisches