Python 脚本异步执行另外两个 python 脚本
Python script executing two other python scripts asynchronously
我有一个 python 脚本 myscript,当 运行 它 "stays open" 带有 GUI 时。我想写一个 python 脚本,像这样启动 myscript 两次:
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()
改为使用 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()
我有一个 python 脚本 myscript,当 运行 它 "stays open" 带有 GUI 时。我想写一个 python 脚本,像这样启动 myscript 两次:
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()
改为使用 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()