关于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 提到的进程效果一样。
到此这篇py文件打包成exe之后打不开(python的py文件打包成exe)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/hd-python/54407.html