1. 程式人生 > >PyQt5使用pyinstaller打包時圖示資源無法打包的解決方法——使用pyrcc5將qrc檔案轉為py檔案

PyQt5使用pyinstaller打包時圖示資源無法打包的解決方法——使用pyrcc5將qrc檔案轉為py檔案

才學pyqt5不久,用pyinstaller打包自己編的小程式後發現圖示沒了,於是上網找了好久的資料,終於搞好了。

整合一下以免以後忘了,也希望能幫助到別人,以下操作在window-10完成。

pyinstaller可以由py檔案生成exe檔案,是目前用的較為廣泛的一種方法

首先pip安裝pyinstaller

    開啟命令列輸入pip install pyinstaller 會自動安裝,前提聯網

Qt中的qrc檔案是一個xml格式的資源配置檔案,qrc檔案可以用安裝了Qt的vs生成也可以手寫,手寫並不會很麻煩,

qrc大致格式為:

<RCC>
    <qresource prefix="/">
        <file>檔名</file>
        #多少個檔案寫多少行
    </qresource>
</RCC>

(以後的操作應注意相對路徑和絕對路徑)

以下面為例我們先把圖示資原始檔(高亮的四張圖片)放到工程所處的資料夾下面

然後再再同一目錄下(後面的操作都在該目錄進行)建立一個txt檔案resource.txt開啟編輯

儲存後更改檔案字尾名為.qrc

接下來使用pyrcc5進行轉換得到.py檔案(pyrcc5是PyQt5的附帶工具,安裝PyQt5後有)

使用命令列進入專案所在資料夾進行操作或者使用Powershell,這裡我使用的是Powershell

在專案所在資料夾按住shift單擊滑鼠右鍵彈出選單,開啟Powershell

鍵入命令pyrcc5 -o 目標檔名 原始檔名

得到了resource.py之後就可以在主指令碼snake.py中使用了,將resource.py檔案新增到解決方案後import resource

然後我們就可以使用resource.py中的資源了

注意:圖片名稱還是原來的名稱,前面的“:”冒號一定不能少(我也不知道為什麼)

按照這樣的方法設定好四個圖示後看一下效果

最後使用pyinstaller打包

鍵入pyinstaller -F -w snake.py -i snake.ico -n snake

得到三個資料夾,我們最終要的exe檔案在dis資料夾

這個時候將之前用到的png圖示檔案、qrc檔案和pyinstaller生成的兩個資料夾等刪除snake.exe也可以正常執行

搞定啦