一、问题
使用 pyinstaller 打包 python 程序时,发现只要程序引入了 multiprocessing 包,那么打包好的exe执行文件启动后就会无限创建子进程导致系统崩溃,内存溢出。
二、解决方法
创建多进程前执行此方法
multiprocessing.freeze_support()
具体如下
import multiprocessing
import os
def start_process():
print('启动子进程...')
if __name__ == '__main__':
# 关键方法 ----------------------------------------
multiprocessing.freeze_support() # 打包成exe时,需要该语句,防止系统无限创建子线程
# ------------------------------------------------
# 启动进程
process = multiprocessing.Process(target=start_process)
process.start()