由于上一篇文章中使用了pyinsatll的方式將二維碼生成器進行打包成exe程式應用,在打包的程序中遇到了一個問題就是不能將外部的資源圖片打包進exe的應用程式,
所以,在這里記錄一下怎么可以將外部的資源檔案打包到exe的應用程式中,這樣無論在哪臺電腦上面執行都能展示出我們的資源圖片,不會出現找不到資源的情況,
首先,就是QRC格式的資源檔案,就像下面這樣將資源路徑配置到這樣的檔案中,我創建了一個 images.qrc 的檔案,
【閱讀全文】

<RCC>
<qresource prefix="/">
<file>default.png</file>
<file>images/1.jpg</file>
<file>images/2.jpg</file>
</qresource>
</RCC>
將需要打包的資源檔案路徑按照上面這樣配置,
需要注意的是這里的資源路徑組態檔(images.qrc)是和你需要打包的.py檔案在同一個目錄下面,
接下來就是將qrc生成.py的python模塊檔案,實際上生成后是將外部資源轉換成了二進制的檔案,使用下面這個命令進行生成,
pyrcc5 -o images.py images.qrc
生成的 images.py檔案就是這樣,由于太長這里僅僅展示了部分的內容,
# -*- coding: utf-8 -*-
# Resource object code
#
# Created by: The Resource Compiler for PyQt5 (Qt v5.15.2)
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore
qt_resource_data = https://www.cnblogs.com/lwsbc/archive/2021/12/29/b"\
\x00\x01\x14\x4d\
\x89\
\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
\x00\x01\x44\x00\x00\x01\x41\x08\x06\x00\x00\x00\x0f\x27\xd6\x75\
\x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\
\x04\x67\x41\x4d\x41\x00\x00\xb1\x8f\x0b\xfc\x61\x05\x00\x00\x00\
\x09\x70\x48\x59\x73\x00\x00\x0e\xc3\x00\x00\x0e\xc3\x01\xc7\x6f\
\xa8\x64\x00\x00\xff\xa5\x49\x44\x41\x54\x78\x5e\xec\xbd\x07\xbc\
\x56\xc5\x96\xe6\x3d\xf3\x4d\xce\x3d\x33\x3d\xb7\xbb\x67\xfa\x76\
\x98\xee\xb9\xdd\xf7\x5e\xf5\x9a\x23\x8a\x59\x89\x06\x10\x73\x44\
最后,還需要將我們生成的資源檔案 images.py模塊匯入到需要參考的模塊當中,
在做處理之前,我們原始的參考資源的方式是這樣的,
self.image.setPixmap(QPixmap('default.png'))
在做了處理之后,需要將前面轉化好的 images.py 模塊匯入到當前需要參考資源的模塊,
import images
self.image.setPixmap(QPixmap(':/default.png'))
注意在使用 images.py 的資源參考方式后,在這個圖片路徑前面多了一個冒號的使用,
最后,執行正常的打包程序即可,打包完成后會發現我們的資源圖片能夠正常的參考,
pyinstaller -F -w -i favicon.ico test2.py
可以使用 -i 引數給應用加上圖示,
在打包程序中如果出現模塊沒有發現的問題,將參考的自定義模塊放到外部的包下面參考即可,比如需要打包main.py ,則main.py的同一級目錄下面盡量只有它一個.py檔案,否則打包成exe檔案很容易出現找不到參考包的情況,

【往期精彩】
pyqt5做了一個二維碼生成器,已打包成exe可執行程式...
如何在控制臺實作一個資料管理系統(包括MYSQL資料庫的增刪改查)
自制檔案格式轉換器,支持 .txt/.xlsx/.csv格式轉換...
PyPDF2如何實作按照PDF頁碼提取后并另存為PDF格式檔案?
浪漫的turtle,送給程式員自己的圣誕樹!
歡迎關注作者公眾號【Python 集中營】,專注于后端編程,每天更新技術干貨,不定時分享各類資料!轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/397173.html
標籤:其他
