发布程序
正式发布程序
前面,我们开发好了一个HTTP协议测试程序,但是这个程序是Python程序,运行它需要Python解释器。
如果我们要发布程序给客户使用,当然不能要求别人去安装Python解释器,并且敲命令 python httpclient.py
。
我们应该做成 可执行程序
发布别人使用。
我们可以使用 PyInstaller
来制作独立可执行程序。
我们的教程有对PyInstaller的专门介绍,点击这里查看
我们前面开发的QT界面程序,在Windows 上只需要执行下面的命令,即可制作独立exe程序
这样就会在当前目录下产生一个名为 dist
的目录。里面就有一个名为 httpclient 的目录,我们的可执行程序 httpclient.exe 就在里面。
其中
--noconsole
指定不要命令行窗口,否则我们的程序运行的时候,还会多一个黑窗口。 但是我建议大家可以先去掉这个参数,等确定运行成功后,再加上参数重新制作exe。因为这个黑窗口可以显示出程序的报错,这样我们容易找到问题的线索。
--hidden-import PySide6.QtXml
参数是因为这个 QtXml库是动态导入,PyInstaller没法分析出来,需要我们告诉它,
最后,别忘了,把程序所需要的ui文件拷贝到打包目录中。
因为PyInstaller只能分析出需要哪些代码文件。 而你的程序动态打开的资源文件,比如 图片、excel、ui这些,它是不会帮你打包的。
我们的 示例代码 需要 从 httpclient.ui 中加载界面,手动拷贝到 dist/httpclient
目录中。
然后,再双击运行 httpclient.exe
,完美!!
注意
有的杀毒软件,比如 360、QQ管家,会认为打包的exe文件有病毒。
我们只要在 弹出的 安全提示对话框中,选择信任程序即可。
程序图标
添加主窗口图标
我们程序运行的窗口,需要显示自己的图标,这样才更像一个正式的产品。
通过如下代码,我们可以把一个png图片文件作为 程序窗口图标。
from PySide6.QtGui import QIcon
app = QApplication([])
# 加载 icon
app.setWindowIcon(QIcon('logo.png'))
注意:这些图标png文件,在使用PyInstaller创建可执行程序时,也要拷贝到程序所在目录。否则可执行程序运行后不会显示图标。
应用程序图标
应用程序图标是放在可执行程序里面的资源。
可以在PyInstaller创建可执行程序时,通过参数 --icon="logo.ico"
指定。
比如
注意参数一定是存在的ico文件,不能是png等图片文件。
如果你只有png文件,可以通过在线的png转ico文件网站,生成ico,比如下面两个网站
注意:这些应用程序图标ico文件,在使用PyInstaller创建可执行程序时,不需要要拷贝到程序所在目录。因为它已经被嵌入可执行程序了。
您需要高效学习,找工作? 点击咨询 报名实战班
点击查看学员就业情况
白月黑羽自研打包工具
使用 Pyinstaller 打包时,往往会碰到这样的问题:打包前运行没问题,打包后就运行不起来,各种提示缺少什么文件。
所以,针对学员的这些问题,我开发了这个打包工具 Hypackpy
它的做法和 Pyinstaller不一样,它是:
-
直接打包 解释器环境 和 项目代码。
-
可以修改配置文件,排除一些我们不需要的东西
-
创建 可执行程序,方便用户一键运行
具体如何使用,点击这里学习
教程对应的视频,点击这里观看