最近在使用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