赞
踩
1.首先安装pyinstaller。
pip install pyinstaller
2.PyQT5制作程序中使用到的ico等一系列图标文件,要先经过.qrc文件转成.py文件后,才可跟随打包文件一同打包。
首先创建一个.qrc文件,将图片文件全部写进去,例如:
- <RCC>
- <qresource>
- <file>111.ico</file>
- <file>222.png</file>
- <file>333.gif</file>
- <file>444.jpg</file>
- </qresource>
- </RCC>
然后,使用pyrcc5命令,将.qrc文件转换成.py文件。
pyrcc5 resource.qrc -o resource_rc.py
转换后的.py文件如下:
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中,这个时候所用到的环境就变成了动态加载的,速度就跟你用代码启动程序的速度是一样的。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。