这是有效的:
def letsExecute():
import subprocess
subpr = subprocess.Popen("python " + codeFile + spacedout)
这会导致程序没有响应(我在windows上运行):
^{pr2}$wait
,communicate
基本上,任何让主进程等待子进程的操作都会导致相同的结果。我希望主进程在子进程成功完成时退出。在
另外,仅供参考:这个函数与一个tkinter按钮挂钩,这个程序使用tkinter GUI和mainloop()。不知道这是否会影响这个问题,但无论如何要让你知道。在
提前谢谢!在
首先,为什么要尝试
subprocess
另一个python脚本,而只需导入它?在总之,您的问题源于这样一个事实,即}中的任何一个都等待{}的终止,如果
call
、wait
和{timeout
参数被赋值。由于这个原因,tkinter
应用程序无法刷新自身,mainloop
对于代码流是不可访问的。在如果你脑子里有什么复杂的事情-看看^{} 、^{} 和{a3}主题。在
如果您只想在子进程完成时终止主进程,请查看以下代码片段:
测试.py:
主.py:
^{pr2}$这里的主要思想是保持} 和^{} 方法组合的代码是可到达的。在
mainloop
对于使用^{你的代码几乎没有问题。在
^{}
^{} 和^{} 也是阻塞函数。在
请改用^{} 。在
因为您希望GUI线程能够响应,所以可以在另一个线程上启动子进程。像这样的东西
^{pr2}$相关问题 更多 >
编程相关推荐