最近領導要求寫一個測試小工具,將測試過程中的小工具收錄在一起,方便后續調試、測試、裝機檢測等環境使用;
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"