【问题标题】:py2exe with multiprocessing fails to run the processes具有多处理功能的 py2exe 无法运行进程
【发布时间】:2012-11-22 13:44:17
【问题描述】:

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

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

虽然我从 CMD 运行代码(使用解释器)一切正常,但在我使用 py2exe 创建 exe 文件后,进程的执行失败并出现以下错误:

错误:没有这样的选项:--multiprocessing-fork

我找到的所有解决方案都没有帮助。 有什么想法吗?

【问题讨论】:

  • 不,我看到并尝试使用此解决方案。问题在于弹出另一个“主”窗口。这不是这里的情况。我唯一拥有的就是这个错误消息。
  • 其实你是对的..更改没有保存在我工作的位置,现在我再次检查它,它可以工作!

标签: python windows multiprocessing py2exe


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    您知道您使用的是 2008 年的应用吗? (py2exe),python在不断的实现,然后py2exe出现问题,我可以给你更好的解决方案...

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

    简单、容易、良好且可实现。

    希望对你有所帮助。

    【讨论】:

      【解决方案3】:

      这里是a great link,它解释了如何冻结您的多处理程序以使其与 py2exe 一起工作:

      也就是说,您需要在调用 main 之后立即调用 multiprocessing.freeze_support()

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

      【讨论】:

        猜你喜欢
        • 2022-07-23
        • 1970-01-01
        • 1970-01-01
        • 2018-08-30
        • 1970-01-01
        • 1970-01-01
        • 2021-03-28
        • 2019-05-09
        • 1970-01-01
        相关资源
        最近更新 更多