最近领导要求写一个测试小工具,将测试过程中的小工具收录在一起,方便后续调试、测试、装机检测等环境使用;
Pytho+PyQt5打包过程:
===========================
一、Python+PyQt5开发环境介绍
二、python可执行文件打包过程介绍
三、python可执行文件无法加载图片资源
===========================
一、Python+PyQt5开发环境介绍
在上一篇的文章中有详细的介绍:pyqt5环境安装部署中有明确且详细的介绍,该步骤是自己亲测有效的,当时w11刚发布,为了体验一下w11就重装了系统。
二、python项目打包过程
在网上找了很多篇,感觉这一篇写的非常详细:Pyinstaller打包python项目详解文章中的2.2打包多个文件,按照这个步骤是可以完成python项目的打包过程的;
三、python可执行文件无法加载图片资源
本文主要是记录第三点:python+pyqt5项目的可执行文件无法加载图片资源;
1、问题描述:可执行文件无法加载图片资源
这是按照打包步骤生成的exe可执行文件;
这是双击python可执行文件的报错提示信息:无法加载图片资源信息;
在项目中有加载图片资源,但是在执行程序的过程中,无法在图片资源;
2、问题分析
在加载图片资源的时候我是直接用代码添加的的图片资源路径:
1 def add_machine_picture(self): 2 pix = QPixmap("../image/machine.jpg") 3 self.label.setPixmap(pix)
度娘后得知pyinstaller打包pythonGUI工程的时候不会打包图片资源,导致无法图片显示,执行程序的时候会有报错提示信息;
按照:https://blog.csdn.net/monster_li57/article/details/80601050文章的分析及处理思路,实现自己的解决方法;
3、问题处理
因为我的python GUI程序的开发环境是python+PyQt5+Qtdesigner,UI都是通过Qt设计师生成的,许多图片资源都是通过Qt设计进行添加。
3.1、Qt设计师生成的UI文件是通过pyuic5-tool工具转换为py文件;
3.2、Qt设计师添加的图片资源文件为qrc文件,通过pyrcc工具转换为py文件。具体的转换步骤参照上面的pyqt5环境安装部署文章。
前两步是为了后续打包工程的时候将UI及图片资源打包进工程;
3.3、处理措施:在UI生成的py文件引入qrc生成的py文件
自动生成文件引入的方式有问题,需要手动修改,引入的方式和我们常规的包导入方式一致;这样就可以将UI以及图片资源和业务逻辑全部关联起来
并解决项目工程打包生成的exe文件无法加载图片资源问题。
我的工程目录结构如下:
目录结构
common:通用文件目录:工具函数、重复性调用的函数
image:图片资源
mock_test:某些页面的逻辑采用的mock的方式;
src:程序运行文件:每个页面的运行文件及主函数main
ui:UI采用的qtdesigner进行设计,没有采用代码生成的方式,主要包含ui、qrc文件;
allresource:上层目录,目录下的py文件主要是ui和qrc文件生成的可执行的py文件
运行方式
程序运行的主入口:src目录下的main.py文件,命令执行方式:
"python main.py"