Python在Windows上调用';make-j4';通过子流程挂起,-j1起作用

Python在Windows上调用';make-j4';通过子流程挂起,-j1起作用,python,windows,build,makefile,Python,Windows,Build,Makefile,在将构建脚本移植到Windows时,我注意到我无法在python中使用并行构建选项-j调用make: 这是在Windows7(在虚拟机中)上,使用Python3.4.2(或2.7.8),GNUMake3.81来自MinGW。自己调用cl.exe来编译大约40个C文件。在Taskmanager中删除有问题的make.exe时,以下是输出: make: *** [target] Error 1 make: INTERNAL: Exiting with 1 jobserver tokens avail

在将构建脚本移植到Windows时,我注意到我无法在python中使用并行构建选项
-j
调用
make

这是在Windows7(在虚拟机中)上,使用Python3.4.2(或2.7.8),GNUMake3.81来自MinGW。自己调用
cl.exe
来编译大约40个C文件。在Taskmanager中删除有问题的
make.exe
时,以下是输出:

make: *** [target] Error 1
make: INTERNAL: Exiting with 1 jobserver tokens available; should be 4!

我不知道答案,但我也遇到过类似的问题:“进一步的测试表明,外壳根本没有什么不同。”好吧,那就不要谈论那些似乎暗示外壳是罪魁祸首的令人困惑的东西。立即进入问题的核心。如果您从命令行而不是使用Python调用它,它会起作用吗?@TheHerk:通过cmd.exe shell works(IIRC)运行它的可能性很小:尝试将close_fds=True传递给subprocess.call()
make: *** [target] Error 1
make: INTERNAL: Exiting with 1 jobserver tokens available; should be 4!