使用pyinstaller打包,发现问题:
代码运行时调试的结果不一致
代码中设定的图标打包后没有显示出来
打包代码程序
test.py为入口函数main()所在的文件
pyinstaller -F -w -i test.ico test.py 不会出现控制台,图标为test.ico,-F生成单个.exe文件
pyinstaller -F --i test.ico test.py 会出现控制台,代码中加一些调试代码,便于发现问题,-F生成单个.exe文件
pyinstaller -D --i test.ico test.py 不会出现控制台,图标为test.ico,-D生成多个.exe文件
pyinstaller -D --i test.ico test.py 会出现控制台,代码中加一些调试代码,便于发现问题,-D生成多个.exe文件
其中-F 生成单个可执行文件,文件比较大
-D 生成多个文件,其中有个.exe为执行文件
问题1:针对打包后与代码中调试不成功的例子,在代码中加入一下调试的代码,打包时开启控制台,在控制台中可以查看程序运行哪里出现问题
我这段代码出现问题,是由于程序中需要打开的excel表格文件不存在。将文件加入到对应文件夹,问题解决。
问题2:图标不显示
将.ico文件转为.qrc文件,代码中导入即可
新建title.text文件,路径为title.ico文件所在的路径,内容如下:
<RCC><qresource prefix = "/"><file>title.ico</file></qresource>
</RCC>
对文件进行重命名 将title.text修改到title.qrc
使用pyrcc5对文件进行转化,pyrcc5是将文件转化为.py
如果pyrcc5没有安装的话,需要先安装和配置
安装方式:pip install pyqt5_tools
配置方式:
转化方法:在resource.qrc所在路径下打开cmd.
在cmd下输入命令:pyrcc5 -o resource.py resource.qrc
同一个路径下出现:resource.py
将resource.py 文件放在代码路径下,在主程序中导入
import resource
self.setWindowIcon(QIcon(":/title.ico"))
再次运行,发现图标可以正常出现