一、问题
使用 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()
当使用pyinstaller打包包含multiprocessing的Python程序时,会出现执行后无限创建子进程并可能导致系统崩溃的问题。为了解决这个问题,需要在主程序中添加multiprocessing.freeze_support()方法,这可以防止打包成exe后系统无限创建子线程。
1015

被折叠的 条评论
为什么被折叠?



