pyqt5快速上手基础篇12-使用Pyinstaller打包应用程序

前言

本节我们学习如何使用Pyinstaller打包pyqt5应用程序,pyqt5的打包要比之前文章中讲述的tkinter的打包稍微复杂点,主要区别在于pyqt5打包需要导入Qt相关库,笔者开始打包时候遇到错误,网上众说纷纭,有说把python3版本调到python3.5.2的,也会有说pyinstaller3.6安装包版本有问题,需要用源码安装…

一、基础知识

1.pyinstaller简介

PyInstaller的主要目标是开箱即用地与第三方软件包兼容。这意味着,使用PyInstaller,使外部软件包正常工作所需的所有技巧已经集成在PyInstaller本身中,因此不需要用户干预。

和其他打包工具相比,PyInstaller的主要优势在于PyInstaller可与Python 2.7和3.5-3.7一起使用,由于透明压缩,它可以构建较小的可执行文件,它是完全多平台的,并且使用OS支持来加载动态库,从而确保完全兼容。

2.pyinstaller安装

安装命令:

pip3 installer pyinstaller

查看python3版本号,输入:

python3 --version

可以看到,本文我们使用的python3版本是3.7.6,为了避免发生异常,建议大家和我保持一致,或者尽量使用3.5.0 3.5.2版本。

二、实例

1. 打开第一节1-setup代码

打开第一节代码,然后输入python3 run.py,运行程序
在这里插入图片描述
本节我们要做的就是使用pyinstaller打包python文件为exe可执行程序。

2. 变量 frozen 注入到 sys

import sys, os
if hasattr(sys, 'frozen'):    
    os.environ['PATH'] = sys._MEIPASS + ";" + os.environ['PATH']

这段代码和cx_freeze库相关,在 windows 下,cx_freeze库用于将程序打包成 exe,会将一个变量 frozen 注入到 sys 中。

将其添加到入口文件的最上方即可
在这里插入图片描述

3. 打包成一个带调试窗口的exe

输入打包命令:

pyinstaller -F run.py

在这里插入图片描述
可以看到在dist目录下生成了run.exe可执行程序双击执行,可以看到会有一个黑色的背景框,这个类似windows下CMD窗口,可以显示print等打印出来的调试信息
在这里插入图片描述

4. 打包成一个不带调试窗口的exe

输入打包命令:

pyinstaller -F -w run.py

同样会在dist目录下生成run.exe文件,双击执行
在这里插入图片描述

5. 打包成带图标的exe

可以看到上述两种情况打包,程序图标都是系统默认的图标,这次我们为run.exe加个自己的皮肤,需要创建一个icons文件夹,放进去自定义.ico图像,我这里是icon.ico

输入打包命令:

pyinstaller -F -w run.py -i D:/study/python/pyqt/pyqt5/demos/1-setup/icons/icon.ico

可以看到dist下的run.exe仍然是默认皮肤,这个是系统的问题,将run.exe拖到桌面,可以看到皮肤已经更新成功了。
在这里插入图片描述

三、结语

(1) 调试

如果打包后程序提示仍然是无法运行,可以尝试在CMD命令窗口下直接运行程序,如果运行失败,控制台会打印提示信息,我之前遇到过用法错误导致运行不起来的问题,通过这种方式可以查看到具体的错误提示,修改后重新打包即可。
在这里插入图片描述
(2)获取资料

如您在使用过程中有任何问题,请加QQ群进一步交流。

QQ交流群:906015840 (备注:物联网项目交流)

项目实战:PyQt5快速开发串口工具

扫码关注公众号:物联网客栈,回复pyqt5即可获取本节源码。
在这里插入图片描述
一叶孤沙出品:一沙一世界,一叶一菩提

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

物联网客栈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值