2017-04-06 90 views
1

我想從另一個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`

注:

method provided by this answer ,我無法導入程序啓動,因爲我想終止第一個程序

import program_to_launch 

所以我認爲這不是一個解決方案。 和命令在鏈接的回答表明exec file()

execfile('program_to_launch.py')

,它提供問題在program_to_launch.py​​執行導入多個模塊

回答

0

我想你可以在一個新的啓動程序線程或進程:

from os import system 
from threading import Thread 
from sys import exit 

if self.start_button.pression == 1: 
    thread = Thread() 
    thread.run = lambda: system('python program_to_launch.py') 
    thread.start() 

    exit() 
+0

不幸的是,前面的程序保持打開並凍結,我使用函數print('bookmark')'來查看程序到達執行的位置,它在'exit ()'功能。至少當我關閉第二個程序時,第一個程序也會關閉它。 – Ziru93

+0

注意:我也試過'sys.exit()' – Ziru93

+0

而不是os.system試試subprocess.Popen。它應該工作,即使沒有線程 – seenorth