为什么Python multiprocess.Process调用在应用程序中启动多个self实例?

问题描述 投票:0回答:1

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

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

有谁知道我怎么能让这个过程只是做工作而不是打开自己的多个实例?为什么它首先这样做?

python multiprocessing pyinstaller multiprocess
1个回答
1
投票

在使用multiprocessing模块时,您必须致电

multiprocessing.freeze_support()

直接在主要模块的if __name__ == '__main__':线之后。

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

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

© www.soinside.com 2019 - 2024. All rights reserved.