Python通过pyinstaller打包的exe运行闪退和无法启动的问题踩坑
用PyQt5和QtDesigner写了个界面化的程序给别人用,同时还涉及到操作excel表格,最后需要打包给那个人用。
最开始的环境是:Anaconda3 +python3.6.13,以及通过pip安装的pyqt5、openpyxl和pyinstaller。
本机写好后无异常,但是通过pyinstaller打包时,不管是-F单独exe文件还是-D单独目录模式,最后生成的exe文件都无法启动。
也尝试了把PyQt5等第三方库放到自己的py文件目录里,但是还是不行,原理上来说,pyinstaller本身就会将所有第三方库打包,也根本不用这么操作。
最后,被这篇文章最后的总结启发:https://zhuanlan.zhihu.com/p/57435892
环境很重要!
因为我一开始的代码编写和打包过程,都是在Anaconda3的虚拟环境中进行的,我尝试了下把打包后的exe文件通过Anaconda3的虚拟python环境运行,结果是可以运行的!
所以,当我想在windows本身的环境中运行虚拟环境打包的exe文件,自然是不能成功了,大概率是因为一些依赖路径的错误。
所以,解决方法就呼之欲出了。
在windows本身环境中,直接安装python,运行下看看代码能不能运行;然后,也在windows原生cmd中用pyinstaller进行打包操作。这样一来得到的exe文件就能在本机原生cmd环境和他人的机器上运行了。