将python程序打包成exe有三个工具:pyinstaller、cx_freeze、py2exe
其中cx_freeze不支持pyQt5,只能支持PyQt4.
因此采用pyinstaller进行程序打包,参考博客 :使用pyinstaller打包Python3.5+PyQt5.6项目生成exe文件
补充几个问题:
命令:pyinstaller mainUi.py -F -w
含义:mainUi.py--包含有PyQt5的程序
-F 生成一个exe文件
-w 生成的程序不含有黑乎乎得控制台程序
现象:只添加"-F",执行过程中提示一大堆的库找不到,主要是PyQt5,生成的exe点击没有反应
同时添加“-F -w”, 生成的exe文件,启动后报错“Failed to execute script pyi_rth_qt5plugins”
解决方法:
1.使用参数“-p”,手动的指定PyQt5的动态库目录
完整的命令:pyinstaller -F mainUi.py -w -p D:\ProInstall\Python3.5.2\Lib\site-packages\PyQt5\Qt\bin
2.直接将PyQt5\Qt\bin目录添加到环境变量中,一劳永逸,日后使用起来还简单
备注:以上两种方法操作后,编译的过程中仍然会提示一大堆的PyQt5的库找不到,但是生成的程序可以正常运行的。