我正在制作一个GUI,我可以使用它来选择脚本和端口号等参数传递给我的脚本。 我的代码正在运行,我从我的解释器得到答案,但由于某些未知的原因,GUI在显示正在运行的结果后停止响应
我尝试了很多方法来运行解释器(popen,os.system,popen + thread ...)但仍然是相同的结果,它总是停止响应,我必须强制它停止并终止进程,因为它继续使用该端口。
def interpreter():
que2.put_nowait(queue[0])
b = que2.get()
a = que1.get()
c = 'python C:\\workspace\\Project_Interpreter\\Tool-v1.0.py -s %s %s' % (b, a)
ps=sp.Popen(c , stdout=PIPE)
def stdoutprocess(o):
while True:
stdoutdata = o.stdout.readline()
if stdoutdata:
sys.stdout.write(stdoutdata)
else:
break
t = threading.Thread(target=stdoutprocess,args=(ps,))
t.start()
ps.wait()
t.join()
print "Return code", ps.returncode
答案 0 :(得分:0)
我设法弄明白问题是什么。实际上我把程序搁置等待什么,然后我也让线程等待,所以程序崩溃了。 长话短说,应该做的是删除两行
ps.wait()
t.join()
然后它会正常工作,您也可以实时检索答案!