在osx下打开子进程

时间:2013-01-20 22:57:50

标签: python macos subprocess

我的编程中有一行用于启动程序的其他实例:

a=subprocess.Popen(__file__)

在linux下它运行正常。

但是在osx下,它并没有像它应该创建一个新窗口(该程序是一个Tkinter程序),但它根本不会给出任何错误。 (我检查 _ 文件 _ 实际上是正在运行的程序的名称,可以执行)

回报是:

>    pprint (vars(a))
{'_child_created': True,
 'pid': 38865,
 'returncode': None,
 'stderr': None,
 'stdin': None,
 'stdout': None,
 'universal_newlines': False}

任何提示?

1 个答案:

答案 0 :(得分:0)

那里有一个令人尴尬的问题。你知道吗 ?您的窗口只是隐藏在之前创建的另一个窗口后面。

要看到这一点,请将最新创建的窗口显示在第一个窗口的前面,如下所示:

import Tkinter
import subprocess

if __name__ == "__main__":
    try:
        open('bluh_check')
    except IOError:
        open('bluh_check', 'w').close()
        x = subprocess.Popen(['python', __file__])
        print vars(x)
        title = 'there'
    else:
        title = 'hi'

    root = Tkinter.Tk()
    root.title(title)
    root.withdraw()
    root.deiconify()
    root.mainloop()