关于Python进程池pool与pyinstaller打包exe程序运行的奇怪问题!
最近想吧自己写的py文件打包成exe文件给别人用,学习了pyinstaller也基本会用了,但是在打包多进程程序的时候遇到奇怪问题,向各位求解。
我吧程序简化了下:
但是用pyinstaller 打包EXE文件,问题来了,打包过程也很简单>pyinstaller -F XXX.py
然后我执行EXE文件,意向不到的结果来了,死循环!!!!!!!!!!!不会结束。
出坑:解决了!!!!!!!!!!!!!
在if name == 'main': 中加入:multiprocessing.freeze_support()
即:
知识点: 1、因为开启子进程是不支持打包exe文件的,所以会不停向操作系统申请创建子进程, 而这个代码 multiprocessing.freeze_support() 作用就是支持打包到Windows的EXE文件。 2、多进程的程序运行后,如果直接关闭控制台窗口,那么整个程序都会退出。 如果是 进入 任务管理器,单独结束 控制窗口 的进程,如果子进程不是守护进程,那么子进程还是会继续运行。 3、如果是多线程的,则没这个问题,可以直接打包。 但有个小提示, 如果是 tkinter 的图形界面运行的,是多线程的话,如果子线程不是守护线程,那么关掉主界面后,子线程会继续运行。 如果也是控制台窗口的话,效果和上面 2 提到的进程效果一样。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/181149.html