Python+PyQt5項目打包的可執行文件無法加載圖片資源


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

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"

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM