从Python执行subprocess而不打开Windows命令提示符

可能重复:
在没有控制台的情况下用Popen在pythonw中运行一个进程
如何从Python(2.7)中产生的进程中消除Windows控制台?

我有一个Python程序几次(使用subprocess.check_call)作为一个subprocess调用一个单独的数字运算程序(用C编写)。 它在Linux上效果很好,除了一件小事外,它在Windows上也很棒:每次调用subprocess时,都会创build一个命令提示符窗口,然后在subprocess退出时很快销毁。

这根本不会影响计算,但是这非常烦人,因为这个窗口在屏幕上和屏幕上不断闪烁,并且使得在计算机上做其他事情变得困难,因为新的命令提示符窗口可以窃取键盘焦点。

我怎样才能简单地执行subprocess(没有GUI),并防止命令提示符窗口被创build?

Solutions Collecting From Web of "从Python执行subprocess而不打开Windows命令提示符"

你怎么调用subprocess.check_call() ? 如果传递shell=True ,则不应该创建窗口,因为这会导致为STARTUPINFO.wShowWindow属性设置SW_HIDE标志。

例:

 subprocess.check_call(["ping", "google.com"], shell=True) 

在构建C应用程序时,将其类型设置为Win32子系统而不是控制台子系统。 如果这是一个预先构建的应用程序,则可以使用此工具更改子系统。