利用pyinstaller打包Python的PyQt5程序并加载icon和图片

本人这几天经常忘记各种密码,于是写了一个简单的程序来记录账号和密码,利用PyQt5写了界面,python写了程序,但是在将程序打包成可执行文件时发现程序界面中包含的图片无法显示,百度,google了很长时间才找到解决办法。下面就介绍一下。


基本情况:
python3.6.2
pyinstaller3.3.1


程序目录:
程序文件夹为E:\Python\Pyproject\Password
Password
|--PasswordUI(存放界面,图片,图标之类的)
|--data(数据库)
|--main.py(程序运行部分)


然后在win+R输入cmd,打开命令行程序,切换到Password目录下,输入:
pyinstaller -F main.py
稍等一会就会在Password目录下生成两个文件夹,分别为:build(一些文件)和dist(可执行文件所在处)


需要提前在程序中将图片的引用全部改为绝对路径!
需要提前在程序中将图片的引用全部改为绝对路径!
需要提前在程序中将图片的引用全部改为绝对路径!

如:
利用pyinstaller打包Python的PyQt5程序并加载icon和图片


1)icon图片的加载
icon的加载其实可以在打包程序时直接进行,但是本文是通过修改spec文件来实现,利用pyinstaller打包程序后,在Password文件夹中会生成一个main.spec文件。
使用文本编辑器打开main.spec文件,会看到如下内容:

利用pyinstaller打包Python的PyQt5程序并加载icon和图片

要想加载icon文件可以在console=False后面在添加一行:
icon='E:\Python\Pyproject\Password\PasswordUI\icon.ico'

利用pyinstaller打包Python的PyQt5程序并加载icon和图片

(Ps:跑题说一声,如果不想让程序打开时同时显示控制台黑色框可以,将图中console=True改为console=False)
然后在win+R输入cmd,打开命令行程序,切换到Password目录下,输入:
pyinstaller main.spec
然后可以发现dist文件下的可执行文件已经有了图标,如下:

利用pyinstaller打包Python的PyQt5程序并加载icon和图片


2)图片的加载
我在最初打包的时候没有将图片的路径写为绝对路径,导致打包后的程序打开后不能够显示图片,解决办法就是将程序中的路径,全部写为绝对路径,这样打包后的程序打开后就直接可以看到图片了!
(Ps:图片的名字最好不要用中文名字。)

最后放两张程序界面吧!

利用pyinstaller打包Python的PyQt5程序并加载icon和图片

利用pyinstaller打包Python的PyQt5程序并加载icon和图片

(转载请注明!)