2016-07-16 4 views
0

У меня есть скрипт mysython python, который при запуске «остается открытым» с графическим интерфейсом. Я хотел бы написать питон скрипт запуска MyScript два раза, как это:Сценарий Python, выполняющий два других сценария python асинхронно

bash>python runNTimes.py 2 

У меня есть следующий код runNTimes.py

import subprocess 
for i in range(int(sys.argv[1])): 
    subprocess.call(['python', 'myscript.py']) 

Проблема заключается в том, что это происходит синхронно, то есть когда я запускаю первый в подпроцессе второй подпроцесс не запускается до тех пор, пока первый не завершит.

Минимальный пример myscript.py:

try: 
     import Tkinter as tk # for Python2 
except: 
     import tkinter as tk # for Python3 

win=tk.Tk() 
win.mainloop() 
+0

блоков вызова, используйте POPEN –

+0

@PadraicCunningham Ты избил свой ниндзя –

ответ

1

Использование POPEN вместо: call() блоков Popen() не

from subprocess import Popen 
import sys 
for i in range(int(sys.argv[1])): 
    Popen(['python', 'synccall1.py']) 

synccall1.py

try: 
     import Tkinter as tk # for Python2 
except: 
     import tkinter as tk # for Python3 

win=tk.Tk() 
win.mainloop()