python multiprocessing.Process执行错误的目标(用py2exe打包)

时间:2014-09-23 17:24:37

标签: python multiprocessing py2exe

我有一个问题。

我在Windows7(64位)上使用python(2.7.7,32bit)和py2exe(0.6.9)。

我的应用程序结构如下:

from multiprocessing import Process

def child():
  print "child"

def main():
  print "main"
  p = Process(target=child)
  p.start()
  p.join()

if __name__ == "__main__":
  main()

(1)打包前的结果:

main
child

(2)打包后的结果:

main
main
main
...(forever)

我想在包装后得到(1)。

请告诉我如何在包装后得到(1)。

爱。

1 个答案:

答案 0 :(得分:1)

正如评论中所提到的,在将Python脚本打包到可执行文件中以便在Windows上使用时,需要调用multiprocessing.freeze_support()。在实际调用if __name__ == '__main__':之前,此调用应该在main()之后。

Link to multiprocessing.freeze docs