【Python】PyQt5之串口助手【5】

经过连续几天甚至几个星期的头脑风暴之后,相信基本功能都能实现了,如果还是有问题的,可以参考源码。
源码地址:https://github.com/zengjiawei/CommAssistant-for-PyQt5

最后一步就是如何将它打包成一个.exe的文件呢?这里主要用到的工具是pyinstaller。

首先我们来安装Pyinstaller,安装Python的库都比较简单,就是用pip这个指令,按下win+R输入cmd打开打开命令行程序。

pip install PyInstaller

安装完成之后,通过 'cd' 命令切换到项目的根目录下,输入:

pyinstaller -F name.py

命令如下图所示,其中 'name.py' 要以实际的项目名称为准。

【Python】PyQt5之串口助手【5】_第1张图片
打包命令

按下 'Enter' 后稍等片刻,即会出现 'completed successfully' 的提示。

【Python】PyQt5之串口助手【5】_第2张图片
打包成功

打包成功后,会出现几个文件夹,在 'dist' 文件夹下会看到一个应用程序,这个就是我们打包的可执行程序。

当我双击这个可执行文件的时候,我发现一个奇怪的现象,如果没有出现请忽略,因为我之前也不会的,后来不知弄了什么就出现了。现象如下:

No module

出现这个错误后,程序就会一闪而过,现在还不知道什么原因,有知道的可以在下方评论告诉我,感激不尽。
这里说一下,打开程序会一闪而过,根本来不及看它显示的错误怎么办?这里个小技巧,我们可以打开命令行调试窗口,然后把这个.exe文件拖进去确定,它就不会一闪而过了。
这里我有另外一个解决方法,就是在打包.py文件时,用以下方式打包。

pyinstaller -F name.py --hidden-import=modul

这里需要修改 'name.py' 为实际项目名称, 'modul' 为 'PyQt5.sip',重新执行一下,即可正常运行了,目前还没发现有什么问题。

解决这个小插曲之后,我们双击这个可执行程序,就可以看到我们设计的串口助手了,赶紧测试一下功能呗~

【Python】PyQt5之串口助手【5】_第3张图片
测试界面

到这里收发功能已经正常了。但是还有点瑕疵,不知道大家有没有发现,这个小软件的图标是Python文件的图标呢?而且还出现一个命令行调试窗口,仔细的小伙伴可能还发现,这风格就不对了(我用的是win10,一般win10都有这问题),什么?还没发现?上个原图对比一下。

【Python】PyQt5之串口助手【5】_第4张图片
对比

这样是不是一目了然,左侧的才是我们实际的效果,而且好看了很多有木有?接下来我们一个个问题解决。

在我们创建可执行文件的时候,在根目录下会生成一个 'CommAssistant.spec' 文件,这个文件决定了这个程序启动时加载的数据。右键用文本打开,这里主要修改两个地方。

【Python】PyQt5之串口助手【5】_第5张图片
name.spec

第一个地方,主要是把样式加载到程序中,因为我发现其实Pycharm是引用 了下图所示位置的样式,才有那样的效果,但是我们打包的时候并没有把这个样式打包进来,才会出现不一样的风格。只要我们把它打包进来即可。(我在想同理能不能把程序用到的图片也加载进去一起打包呢?理论上是可以的,这样就不用转换base64这么麻烦了,不过我还没试过,有空再试试,试完再发一篇补充)

【Python】PyQt5之串口助手【5】_第6张图片
样式

第一个地方修改的代码:

a.datas.extend([('PyQt5/Qt/plugins/styles/qwindowsvistastyle.dll', 'src/styles/qwindowsvistastyle.dll', 'BINARY')])

这部分代码由两部分组成,第一个是引用文件的路径,第二个是项目下的路径,所以我们要在根目录下创建一个该路径的文件,并把样式文件复制到目录下。

【Python】PyQt5之串口助手【5】_第7张图片
样式路径

修改的第二部分,主要是增加图标和隐藏命令行调试窗口,这个直接复制即可。注意False后面的逗号,还有路径是 '/' 不是 '\'。

console=False,
icon='C:/images/icon.ico' 

修改完这些后,点击保存,然后重新打包一下,这一次打包的不是.py文件,而是我们刚修改的.spec文件。

重新打包

确定之后,等待生成完成,再到dict文件夹下,双击运行,是不是跟我们在Pycharm上的一样~

如果用win10系统的,可以不用cmd打开命令行调试窗口,直接在根目录下按着 'shift键' + 鼠标右键,可以找到 '在此处打开powershell窗口' 的选项,这个跟命令行调试窗口差不多,不用 cd 地址,很方便。

至此,PyQt5—串口助手就写完了,如果有需要补充的,欢迎大家评论,我再更新,感谢大家支持。

你可能感兴趣的:(【Python】PyQt5之串口助手【5】)