为什么Python multiprocess.Process调用在应用程序中启动多个self实例?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么Python multiprocess.Process调用在应用程序中启动多个self实例?相关的知识,希望对你有一定的参考价值。
我创建的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
有谁知道我怎么能让这个过程只是做工作而不是打开自己的多个实例?为什么它首先这样做?
答案
在使用multiprocessing
模块时,您必须致电
multiprocessing.freeze_support()
直接在主要模块的if __name__ == '__main__':
线之后。
有关更多信息,请阅读有关multiprocessing.freeze_support的Python库手册。
参考:https://github.com/pyinstaller/pyinstaller/wiki/Recipe-Multiprocessing
以上是关于为什么Python multiprocess.Process调用在应用程序中启动多个self实例?的主要内容,如果未能解决你的问题,请参考以下文章