Python mehrfacher subprocess?
Hallo zusammen
Will das eine python Datei (1) Mithilfe von subprocess eine andere Datei (2) startet. Diese Datei soll dann je nach Uhrzeit nochmal eine andere Datei starten also zum Beispiel ist es 15 Uhr dann wird die Datei die für 15 Uhr zuständig ist ausgeführt.
Wenn ich Datei 2 ausführe klappt alles einwandfrei. Aber wenn ich versuche Datei 2 mit Datei 1 zu starten steht im debug, dass Datei 3 nicht gefunden wird. Was ja aber eigentlich gar nicht sein kann weil es funktioniert wenn ich das 2. Script ausführe.
Ich weiß nicht ob es für den context hilft aber ein sprachassistent soll sobald er gestartet wird ein anderes Script aufrufen welches dann die Uhrzeit checkt. Und je nach Uhrzeit wird dann ein nochmal anderes Script aufgerufen um z.b verschiedene Ausgaben zu machen
Danke im voraus
1 Antwort
Das klingt nach einem Problem in der Projektstruktur / der Pfadangaben.
Angenommen, es gibt diese drei Skripte:
script1.py
from subprocess import Popen, PIPE
process = Popen(["python", "test/script2.py"], stdin=PIPE, stdout=PIPE, stderr=PIPE)
output, err = process.communicate()
print(output)
test/script2.py
from subprocess import Popen, PIPE
process = Popen(["python", "script3.py"], stdin=PIPE, stdout=PIPE, stderr=PIPE)
output, err = process.communicate()
print(output)
test/script3.py
print("Hello world!")
Dann würde bei expliziter Ausführung von script2.py die script3.py zwar gefunden werden, aber bei Ausführung von script1.py nicht, da der ausführende Interpreter im Verzeichnis von script1.py nachschaut. Der Pfad in script2.py müsste stattdessen test/script3.py lauten.
Den richtigen Verzeichnispfad kannst du auch dynamisch ermitteln.
import os
script_file_path = os.path.dirname(os.path.realpath(__file__)) + "/script3.py"