为什么 Python 会多进程.应用程序中的进程调用启动多个自身实例



我创建的GUI使用多进程。进程函数调用,通过使用多个进程更快地完成工作。

w1 = multiprocessing.Process(target = _process_worker.start)

当我将 GUI 作为 python 脚本运行时gui.py我单击启动工人的按钮,一切正常,工作完成得更快,没有问题。

当我将 python 程序编译成窗口应用程序(使用 pyinstaller(时,单击相同的按钮会导致 GUI 启动自身的多个实例;也就是说,每次进行多进程调用时,gui 都会启动另一个 gui 应用程序。

pyinstaller.ex --onefile --windowed --icon=guiicon.ico gui.py

有谁知道我如何让进程只做工作而不是打开自身的多个实例?它首先为什么要这样做?

在使用multiprocessing模块时,必须调用

multiprocessing.freeze_support()

紧跟在主模块的if __name__ == '__main__':行之后。

请阅读有关multiprocessing.freeze_support的 Python 库手册以获取更多信息。

参考: https://github.com/pyinstaller/pyinstaller/wiki/Recipe-Multiprocessing

相关内容

  • 没有找到相关文章

最新更新