使用Pyinstall将PyQT5工程打包成.exe应用程序(包含图标一同打包)

1.首先安装pyinstaller。

 pip install pyinstaller

2.PyQT5制作程序中使用到的ico等一系列图标文件,要先经过.qrc文件转成.py文件后,才可跟随打包文件一同打包。

  首先创建一个.qrc文件,将图片文件全部写进去,例如:


 
 111.ico
 222.png
 333.gif
 444.jpg
 
 

        然后,使用pyrcc5命令,将.qrc文件转换成.py文件。

pyrcc5 resource.qrc -o resource_rc.py

转换后的.py文件如下:

使用Pyinstall将PyQT5工程打包成.exe应用程序(包含图标一同打包)_第1张图片

3.需要在想要打包的***.py文件中将图片的路径写成这样:

palette1 = QPalette()
pix1 = QPixmap(":/111.jpg")
palette1.setBrush(QPalette.Background, QBrush(pix1))
demo.setPalette(palette1)
palette2 = QPalette()
pix2 = QPixmap(":/222.jpg")

4.在将要打包的***.py文件中将转后的.py文件import进去。

 import resource_rc.py 

5.1 单文件打包

  单文件打包会将整个项目和相关依赖都打包进一个exe,此时一般只需要发送exe文件给别人即可正常运行。它的缺点是:启动相对另一种打包方式更缓慢。
输入命令:

pyinstaller -w -F -i '.\Plot.ico' main.py

参数解释:
  -F :单文件打包
  -w:不要console(取消类似于cmd的黑框框)
  -i:后面接图标地址(图标一定要是标准的ico格式)
  最后面接的是要打包的程序:main.py

运行命令成功后:

  会生成三个文件夹和一个.spec文件,.exe在dist文件夹中。
 

5.2 单文件夹打包

  只需要将dist下的文件夹生成压缩包发给别人,别人解压,找到运行的exe即可运行程序。 相比于单文件打包命令, 只需将命令中的-F换成-D即可。

pyinstaller -w -D -i '.\Plot.ico' main.py

        打包完成后,同样生成了三个文件夹和一个.spec文件。 不同的是:在dist文件夹里生成了一个文件夹,而.exe就在该文件夹内。这种类型的打包启动速度相对比较快,但是不方便我们查找。而且需要我们格外小心,不要误删或者移动了里面的文件。

  PS:加 -F 虽然是生成了单个exe可执行文件,看上去很清爽,但是这个命令它把所有的环境都整合在了一起,如果我们的程序比较大的话,启动时就会非常慢(如果你的电脑性能一般的话,加载时间会更长)。因为它加载的数据都是静态加载的,需要去封装的包里一个个的去查找,所以速度变慢了。因此去掉 -F 之后,我们的启动速度流畅无比,体验效果也大大提升。去掉它之后,生成的dist文件中你程序中要用到的环境都会被放在dist中,这个时候所用到的环境就变成了动态加载的,速度就跟你用代码启动程序的速度是一样的。

你可能感兴趣的:(Python,PyQt5,python,开发语言,qt)