PyQt5使用pyinstaller打包时图标资源无法打包的解决方法——使用pyrcc5将qrc文件转为py文件

时间:2024-04-01 22:25:35

才学pyqt5不久,用pyinstaller打包自己编的小程序后发现图标没了,于是上网找了好久的资料,终于搞好了。

整合一下以免以后忘了,也希望能帮助到别人,以下操作在window-10完成。

pyinstaller可以由py文件生成exe文件,是目前用的较为广泛的一种方法

首先pip安装pyinstaller

    打开命令行输入pip install pyinstaller 会自动安装,前提联网

Qt中的qrc文件是一个xml格式的资源配置文件,qrc文件可以用安装了Qt的vs生成也可以手写,手写并不会很麻烦,

qrc大致格式为:

<RCC>
    <qresource prefix="/">
        <file>文件名</file>
        #多少个文件写多少行
    </qresource>
</RCC>

(以后的操作应注意相对路径和绝对路径)

以下面为例我们先把图标资源文件(高亮的四张图片)放到工程所处的文件夹下面

PyQt5使用pyinstaller打包时图标资源无法打包的解决方法——使用pyrcc5将qrc文件转为py文件

然后再再同一目录下(后面的操作都在该目录进行)创建一个txt文件resource.txt打开编辑

PyQt5使用pyinstaller打包时图标资源无法打包的解决方法——使用pyrcc5将qrc文件转为py文件

保存后更改文件后缀名为.qrc

接下来使用pyrcc5进行转换得到.py文件(pyrcc5是PyQt5的附带工具,安装PyQt5后有)

使用命令行进入项目所在文件夹进行操作或者使用Powershell,这里我使用的是Powershell

在项目所在文件夹按住shift单击鼠标右键弹出菜单,打开Powershell

键入命令pyrcc5 -o 目标文件名 源文件名

PyQt5使用pyinstaller打包时图标资源无法打包的解决方法——使用pyrcc5将qrc文件转为py文件

得到了resource.py之后就可以在主脚本snake.py中使用了,将resource.py文件添加到解决方案后import resource

PyQt5使用pyinstaller打包时图标资源无法打包的解决方法——使用pyrcc5将qrc文件转为py文件

然后我们就可以使用resource.py中的资源了

PyQt5使用pyinstaller打包时图标资源无法打包的解决方法——使用pyrcc5将qrc文件转为py文件

注意:图片名称还是原来的名称,前面的“:”冒号一定不能少(我也不知道为什么)

按照这样的方法设置好四个图标后看一下效果

PyQt5使用pyinstaller打包时图标资源无法打包的解决方法——使用pyrcc5将qrc文件转为py文件

最后使用pyinstaller打包

pyinstaller的使用方法可以参考这篇文章https://blog.csdn.net/jirryzhang/article/details/78881512

键入pyinstaller -F -w snake.py -i snake.ico -n snake

PyQt5使用pyinstaller打包时图标资源无法打包的解决方法——使用pyrcc5将qrc文件转为py文件

PyQt5使用pyinstaller打包时图标资源无法打包的解决方法——使用pyrcc5将qrc文件转为py文件

得到三个文件夹,我们最终要的exe文件在dis文件夹

PyQt5使用pyinstaller打包时图标资源无法打包的解决方法——使用pyrcc5将qrc文件转为py文件

这个时候将之前用到的png图标文件、qrc文件和pyinstaller生成的两个文件夹等删除snake.exe也可以正常运行

搞定啦