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也可以正常執行
搞定啦