pyinstaller打包pyqt5程序 全过程 超详细

用pyqt5写了个脚本,功能是在一大堆文件中搜索关键词,并定位。界面如下:
pyinstaller打包pyqt5程序 全过程 超详细_第1张图片
走过了多线程、组合复选框、win32com的各种神奇API,终于成功完美运行了。
然后,开始打包。
环境Annaconda+python3.6,pyqt5,pyinstaller

问题一:打包直接报错

打包命令(前面的路径C:\Users\xdd\Desktop\we_search是主函数文件所在的位置,之后打包的文件也在这个路径下,如果想要在别的地方放打包文件就cd到对应位置,pyinstaller后面加完整路径就好了。

C:\Users\xdd\Desktop\we_search>pyinstaller we_search_3.0.py

报错:C:\qt5b\qt_1524647842210_h_env\Library\plugins缺少文件在这里插入图片描述
很纳闷,不知道是哪里来的文件夹,于是按照错误提示新建了空文件夹在这里插入图片描述

ok,成功 build completed successfully.

问题二:双击exe文件闪退

打包成功后生成build和dist两个文件夹,dist里面有一个文件夹,在里面有exe文件,双击后闪退。
一头雾水。于是用cmd打开这个exe,如图
pyinstaller打包pyqt5程序 全过程 超详细_第2张图片
豁然开朗,没有ui文件,因为程序的界面不是纯代码的,有用 qt designer设计一部分,要加载ui文件。而pyinstaller打包是不会自动打进去的,这点很重要,包括图片啊,文本啊这些都要自己手动复制进文件夹。

问题三:还是打不开

pyinstaller打包pyqt5程序 全过程 超详细_第3张图片

not find Qt platform plugin “windows”

大概缺少windows平台的配置文件吧。
于是找啊找,终于在D:\anaconda\Library\plugins\platforms路径下找到了这个platforms文件夹如果是纯python,应该在python36\Lib\site-packages\PyQt5\plugins下面,老规矩拷贝到打包后的文件夹下。于是成了这样。pyinstaller打包pyqt5程序 全过程 超详细_第4张图片
双击exe,期待的画面出现了,成功运行,舒服。不对!我的图标呢
pyinstaller打包pyqt5程序 全过程 超详细_第5张图片

问题四:图标显示不出来

我:明明在开发环境下好好的能显示的图标去哪儿了呢?
吃瓜群众:哈哈,简单,你肯定没把图标放进文件夹。
我:
在这里插入图片描述
pyinstaller打包pyqt5程序 全过程 超详细_第6张图片
好吧,又是一个依赖文件D:\anaconda\Library\plugins\imageformats用于图像显示的(纯python依然在python36\Lib\site-packages\PyQt5\plugins),copy过来,于是成了这样
pyinstaller打包pyqt5程序 全过程 超详细_第7张图片
运行,成功!!!

pyinstaller打包pyqt5程序 全过程 超详细_第8张图片

程序自定义图标,骚一下?

试试打包命令后加一个-i 图标.ico

主界面后面有个控制台,强迫症?

那就再加个--noconsole

pyinstaller打包pyqt5程序 全过程 超详细_第9张图片

你可能感兴趣的:(小程序,环境搭建,pyqt)