1、因为开启子进程是不支持打包exe文件的,所以会不停向操作系统申请创建子进程,
而这个代码 multiprocessing.freeze_support() 作用就是支持打包到Windows的EXE文件。
2、多进程的程序运行后,如果直接关闭控制台窗口,那么整个程序都会退出。
如果是 进入 任务管理器,单独结束 控制窗口 的进程,如果子进程不是守护进程,那么子进程还是会继续运行。
3、如果是多线程的,则没这个问题,可以直接打包。
但有个小提示, 如果是 tkinter 的图形界面运行的,是多线程的话,如果子线程不是守护线程,那么关掉主界面后,子线程会继续运行。
如果也是控制台窗口的话,效果和上面 2 提到的进程效果一样。
Python进程池pool与pyinstaller打包exe程序运行的奇怪问题
于 2022-01-06 15:39:42 首次发布