我在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.
答案 0 :(得分:3)
由于Windows没有fork()
系统调用,multiprocessing
模块必须执行一些黑魔法来分叉进程。基本上,它会尝试猜测程序的入口点,并跳过在fork应该发生之前执行的所有代码。
可能你没有包含
if __name__ == '__main__':
保护您的代码,这是代码在Windows上运行所必需的 - 有关详细信息,请参阅the platform-specific documentation。