由于上一篇文章中使用了pyinsatll的方式將二維碼生成器進(jìn)行打包成exe程序應(yīng)用,在打包的過(guò)程中遇到了一個(gè)問(wèn)題就是不能將外部的資源圖片打包進(jìn)exe的應(yīng)用程序。
公司主營(yíng)業(yè)務(wù):成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。成都創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來(lái)驚喜。成都創(chuàng)新互聯(lián)推出通化縣免費(fèi)做網(wǎng)站回饋大家。
所以,在這里記錄一下怎么可以將外部的資源文件打包到exe的應(yīng)用程序中,這樣無(wú)論在哪臺(tái)電腦上面執(zhí)行都能展示出我們的資源圖片,不會(huì)出現(xiàn)找不到資源的情況。
首先,就是QRC格式的資源文件,就像下面這樣將資源路徑配置到這樣的文件中。我創(chuàng)建了一個(gè) images.qrc 的文件。
【閱讀全文】
default.png
images/1.jpg
images/2.jpg
將需要打包的資源文件路徑按照上面這樣配置。
需要注意的是這里的資源路徑配置文件(images.qrc)是和你需要打包的.py文件在同一個(gè)目錄下面。
接下來(lái)就是將qrc生成.py的python模塊文件,實(shí)際上生成后是將外部資源轉(zhuǎn)換成了二進(jìn)制的文件,使用下面這個(gè)命令進(jìn)行生成。
pyrcc5 -o images.py images.qrc
生成的 images.py文件就是這樣,由于太長(zhǎng)這里僅僅展示了部分的內(nèi)容。
# -*- 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 = 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模塊導(dǎo)入到需要引用的模塊當(dāng)中。
在做處理之前,我們?cè)嫉囊觅Y源的方式是這樣的。
self.image.setPixmap(QPixmap('default.png'))
在做了處理之后,需要將前面轉(zhuǎn)化好的 images.py 模塊導(dǎo)入到當(dāng)前需要引用資源的模塊。
import images
self.image.setPixmap(QPixmap(':/default.png'))
注意在使用 images.py 的資源引用方式后,在這個(gè)圖片路徑前面多了一個(gè)冒號(hào)的使用。
最后,執(zhí)行正常的打包過(guò)程即可,打包完成后會(huì)發(fā)現(xiàn)我們的資源圖片能夠正常的引用。
pyinstaller -F -w -i favicon.ico test2.py
可以使用 -i 參數(shù)給應(yīng)用加上圖標(biāo)。
在打包過(guò)程中如果出現(xiàn)模塊沒有發(fā)現(xiàn)的問(wèn)題,將引用的自定義模塊放到外部的包下面引用即可。比如需要打包main.py ,則main.py的同一級(jí)目錄下面盡量只有它一個(gè).py文件,否則打包成exe文件很容易出現(xiàn)找不到引用包的情況。
【往期精彩】
pyqt5做了一個(gè)二維碼生成器,已打包成exe可執(zhí)行程序...
如何在控制臺(tái)實(shí)現(xiàn)一個(gè)數(shù)據(jù)管理系統(tǒng)(包括MYSQL數(shù)據(jù)庫(kù)的增刪改查)
自制文檔格式轉(zhuǎn)換器,支持 .txt/.xlsx/.csv格式轉(zhuǎn)換...
PyPDF2如何實(shí)現(xiàn)按照PDF頁(yè)碼提取后并另存為PDF格式文件?
浪漫的turtle,送給程序員自己的圣誕樹!