本文主要是介绍【pyinstaller】打包软件中含multiprocess的多进程时遇到的问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
如果使用multiprocess在项目代码里面(没有单独放在main函数里)启动多进程,multiprocess在windows里的启动机制是spawn,会重新走一遍整个代码的main,此时如果是pyqt项目,就会再次实例化一个界面,这不是我们期盼的。通过查阅资料,可以在项目的main函数第一句加上multiprocess.freeze_support()
可以解决这个问题,但是尝试了,pyqt项目在启动多进程后直接闪退了,原因不清。
因此需要将启动multiporcess的代码单独放在脚本里,用自己main入口启动,单独打包,与主软件完全隔离。
如果使用pickle文件传参的话,里面的数据结构,例如类的实例等,涉及的module需要在load pickle的时候也导入,不然这些类的实例无法恢复。
这篇关于【pyinstaller】打包软件中含multiprocess的多进程时遇到的问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!