用pyinstaller打包包含多进程的程序时,进程自动重启,进程自动增加至电脑死机问题。使用了from multiprocessing.pool import Pool来使用多线程池

最近在使用Pyinstaller打包Python程序的时候发现,打包过程正常,但在运行时会出错,表现为进程不断增加至占满电脑CPU死机,程序版本及环境为:

Windows 10
Python3.6
Pyinstaller 3.4
经过网上的多番搜索查阅发现是因为程序使用了多进程模式,而在windows上Pyinstaller打包多进程程序需要添加特殊指令。
这里是官方github给出的解释:
https://github.com/pyinstaller/pyinstaller/wiki/Recipe-Multiprocessing
修改方式比较简单,在 if __name__=='__main__:'下添加一句multiprocessing.freeze_support() 即可。
如下:

if __name__=='__main__':
    # 在此处添加
    multiprocessing.freeze_support()
    # 这里是你的代码
    # ......
1
如果你的Pyinstaller版本低于3.3版本的话,还需要额外添加一个模块:

import os
import sys

# Module multiprocessing is organized differently in Python 3.4+
try:
    # Python 3.4+
    if sys.platform.startswith('win'):
        import multiprocessing.popen_spawn_win32 as forking
    else:
        i

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值