Process.start不在Windows上工作

时间:2011-11-07 20:31:18

标签: python

我在linux&上运行python版本2.7.2窗户框。我正在运行一个脚本,它使用multiprocessing.Process生成子进程并等待它完成所需的任务&然后最终退出。这在Linux上运行良好,但在Windows上,它在执行process.start时给出错误。 以下是示例代码段:

pobj = Process(target = foo, args=(bar,))
pobj.start()

Windows系统上的错误:

WindowsError: [Error 2] The system cannot find the file specified

我做了一些基本调试,发现错误来自“C:\ Python27 \ Lib \ multiprocessing \ forking.py”文件行号255.

1 个答案:

答案 0 :(得分:3)

由于Windows没有fork()系统调用,multiprocessing模块必须执行一些黑魔法来分叉进程。基本上,它会尝试猜测程序的入口点,并跳过在fork应该发生之前执行的所有代码。

可能你没有包含

if __name__ == '__main__':

保护您的代码,这是代码在Windows上运行所必需的 - 有关详细信息,请参阅the platform-specific documentation