【pyinstaller】打包软件中含multiprocess的多进程时遇到的问题

如果使用multiprocess在项目代码里面(没有单独放在main函数里)启动多进程,multiprocess在windows里的启动机制是spawn,会重新走一遍整个代码的main,此时如果是pyqt项目,就会再次实例化一个界面,这不是我们期盼的。通过查阅资料,可以在项目的main函数第一句加上multiprocess.freeze_support()可以解决这个问题,但是尝试了,pyqt项目在启动多进程后直接闪退了,原因不清。

因此需要将启动multiporcess的代码单独放在脚本里,用自己main入口启动,单独打包,与主软件完全隔离。

如果使用pickle文件传参的话,里面的数据结构,例如类的实例等,涉及的module需要在load pickle的时候也导入,不然这些类的实例无法恢复。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值