Python Qt 学习笔记(四) 发布程序

安装Python打包工具

pip install pyinstaller

PyInstaller 支持 Python 2.7 和 Python 3.3 以后的版本。

支持在 Windows, Mac OS X,  Linux 系统上打包出 可执行程序。

打包

将之前写的Qt界面程序打包,进入要打包的py文件所在目录,在命令行里执行下面命令

pyinstaller stats.py --noconsole --hidden-import PySide2.QtXml  # 注意PySide2.QtXml一定要严格大小写!

其中

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

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

然后会在当前目录下生成两个文件夹build和dist,生成的可执行应用程序就在dist里

 

 

 

 

注意:由于程序动态加载了ui程序,打包时并没有将那个statis.ui打包进去,可以手动将它放进包里。

双击运行

程序图标

添加主窗口图标

通过下面代码,可更改主窗口

1 from PySide2.QtGui import  QIcon
2 
3 app = QApplication([])
4 # 加载 icon
5 app.setWindowIcon(QIcon('logo.png'))

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

运行

应用程序图标

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

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

比如

pyinstaller stats.py --noconsole --hidden-import PySide2.QtXml --icon="logo.ico"

 

注意参数一定是存在的ico文件,不能是png等图片文件。

如果你只有png文件,可以通过在线的png转ico文件网站,生成ico

网站

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

打包后查看可能图标并没有变

 

 网上搜了搜,原因是Windows资源管理器对图标有缓存问题

解决办法

1、将打包的exe文件复制到另外的一个地方,有时重启stats.exe进程也可以修复。
2、更改文件查看方式即 调整为大图标、中图标、小图标等,stats.exe进程会更新缓存

3、打包时添加参数--onefile

 

posted @ 2020-12-28 11:16  sxkio  阅读(369)  评论(0编辑  收藏  举报