正式发布程序

前面,我们开发好了一个HTTP协议测试程序,但是这个程序是Python程序,运行它需要Python解释器。

如果我们要发布程序给客户使用,当然不能要求别人去安装Python解释器,并且敲命令 python httpclient.py。

我们应该做成 可执行程序 发布别人使用。详情

我们前面开发的QT界面程序,在Windows 上只需要执行下面的命令,即可制作独立exe程序 pyinstaller httpclient.py --noconsole --hidden-import PySide2.QtXml
这样就会在当前目录下产生一个名为 dist 的目录。里面就有一个名为 httpclient 的目录,我们的可执行程序 httpclient.exe 就在里面。

其中

--noconsole 指定不要命令行窗口,否则我们的程序运行的时候,还会多一个黑窗口。 但是我建议大家可以先去掉这个参数,等确定运行成功后,再加上参数重新制作exe。因为这个黑窗口可以显示出程序的报错,这样我们容易找到问题的线索。

--hidden-import PySide2.QtXml 参数是因为这个 QtXml库是动态导入,PyInstaller没法分析出来,需要我们告诉它,

最后,别忘了,把程序所需要的ui文件拷贝到打包目录中。

因为PyInstaller只能分析出需要哪些代码文件。 而你的程序动态打开的资源文件,比如 图片、excel、ui这些,它是不会帮你打包的。

我们的 示例代码需要从 httpclient.ui 中加载界面,手动拷贝到 dist/httpclient 目录中。

然后,再双击运行 httpclient.exe ,完美!!

程序图标

添加主窗口图标
我们程序运行的窗口,需要显示自己的图标,这样才更像一个正式的产品。

通过如下代码,我们可以把一个png图片文件作为 程序窗口图标。

from PySide2.QtGui import QIcon

app = QApplication([])
# 加载 icon
app.setWindowIcon(QIcon('logo.png'))

注意:这些图标png文件,在使用PyInstaller创建可执行程序时,也要拷贝到程序所在目录。否则可执行程序运行后不会显示图标。

应用程序图标

应用程序图标是放在可执行程序里面的资源。

可以在PyInstaller创建可执行程序时,通过参数 --icon="logo.ico" 指定。

比如

pyinstaller httpclient.py --noconsole --hidden-import PySide2.QtXml --icon="logo.ico" 注意参数一定是存在的ico文件,不能是png等图片文件。

如果你只有png文件,可以通过在线的png转ico文件网站,生成ico,比如下面两个网站 网站1 网站2

注意:这些应用程序图标ico文件,在使用PyInstaller创建可执行程序时,不需要要拷贝到程序所在目录。因为它已经被嵌入可执行程序了。

results matching ""

    No results matching ""