別のPythonプログラムからPythonプログラムを起動し、以前のプログラムを同時に終了したいと思います。Python、.pyプログラムを起動して前のプログラムを終了する
私が何をやったかここで:結果は非常に明白である
if(self.start_button.pression==1):
os.system('python program_to_launch.py')
sys.exit()
、プログラムは「program_to_launch.py」を起動し、それを実行するために終了するまで待ちます。
問題は、起動したばかりのプログラムの中のwhileループにあります。 無限に続くように作られています。
ここに問題があります。た `sys.exit()
は、私が最初のプログラムを殺すことができるが、前のプログラムはまだ新しいプログラムの終了を待っている、それが実行されませんusing`
がNOTES:method provided by this answerに続いて
私は最初のプログラムを終了したいので、起動するプログラムをインポートできません。
import program_to_launch
私はそれが解決策ではないと思います。 とコマンドexec file()
execfile('program_to_launch.py')
リンクの答えで提案されているように、それは私はあなただけの新しいプログラムを起動することができると思いprogram_to_launch.py
残念ながら、前のプログラムは開いたままでフリーズしていますが、私はプログラムが実行にどこに到着したかを見るために 'print( 'bookmark')'関数を使用しました。 () '関数を呼び出します。少なくとも私は2番目のプログラムを閉じると、最初のプログラムもそれを閉じます。 – Ziru93
注:私も 'sys.exit()'を試しました – Ziru93
os.systemの代わりに、サブプロセス.Popenを試してみてください。それはスレッドを使わなくても動作するはずです – seenorth