Ich möchte ein Python-Programm von einem anderen Python-Programm starten und gleichzeitig das vorherige Programm beenden.Python, starte ein .py-Programm und beende das vorherige Programm
Hier ist, was ich getan habe:
if(self.start_button.pression==1):
os.system('python program_to_launch.py')
sys.exit()
Das Ergebnis ist ziemlich offensichtlich, starten Sie das Programm das ‚program_to_launch.py‘ und warten, bis es Ende zu laufen.
Das Problem liegt in der While-Schleife, innerhalb des gerade gestarteten Programms. Es ist für eine unbestimmte Zeit hergestellt.
Hier ist das Problem; das vorherige Programm wartet noch das Ende des neuen Programms, und es wird der` sys.exit()
Ich könnte töten das erste Programm using`
NOTES nicht ausführen:
Nach dem method provided by this answer , ich kann nicht das Programm importieren zu starten, weil ich das erste Programm
import program_to_launch
Also ich denke, beenden wollen, dass es keine Lösung ist. Und der Befehl exec file()
execfile('program_to_launch.py')
wie in der verknüpften Antwort vorgeschlagen, bietet es Probleme mehr Module in der Ausführung von program_to_launch.py zu importieren
Leider bleiben die bisherigen Programme offen und eingefroren, ich habe die Funktion 'print ('bookmark')' benutzt, um zu sehen, wo das Programm in der Ausführung ankommt, es kommt vor dem 'exit() 'Funktion. Zumindest wenn ich das zweite Programm schließe, schließt das erste Programm es auch. – Ziru93
Hinweis: Ich habe auch versucht 'sys.exit()' – Ziru93
Statt os.system versuchen Sie subprocess.Popen. Es sollte auch ohne Threading funktionieren – seenorth