py2exe 和 multiprocessing 在运行时出现进程失败问题

8

我正在使用Windows 7上的Python 2.6,尝试使用多进程:

p = Process(target=f, args=(SOME_ARGS))
p.start()
p.join()

当我使用解释器从CMD运行代码时,一切都很好,但是当我使用py2exe创建一个exe文件后,进程的执行会失败,并且会出现以下错误:error: no such option: --multiprocessing-fork。我找到的所有解决方案都没有帮助。有什么想法吗?

2
可能是multiprocessing问题[pyqt,py2exe]的重复。 - mmmmmm
1
不,我看到了并尝试使用这个解决方案。问题在于另一个“主”窗口弹出。但这里不是这种情况。我唯一拥有的就是这个错误信息。 - jo_dman
其实你是对的..更改没有保存在我工作的位置,现在我再次检查它就可以了! - jo_dman
3个回答

5

将Python脚本打包成可在Windows上使用的可执行文件时,需要调用multiprocessing.freeze_support()。这个调用应该在实际调用main()之前,在if __name__ == '__main__':后面进行。


3
这里有一个很棒的链接,可以解释如何冻结你的多进程程序以使其与py2exe一起使用:
具体来说,在调用main函数后,你需要立即调用multiprocessing.freeze_support()
import multiprocessing

if __name__ == '__main__':
    multiprocessing.freeze_support()

3

你知道你正在使用2008年的应用程序吗?(py2exe),Python不断更新,因此会与py2exe出现问题,我可以给您提供更好的解决方案...

您可以使用cxfreeze:http://cx-freeze.sourceforge.net/

简单、易用、优秀且更新。

我希望这可以帮助到您。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接