使用pyinstaller打包,發現問題:
- 代碼運作時調試的結果不一緻
- 代碼中設定的圖示打包後沒有顯示出來
打包代碼程式
test.py為入口函數main()所在的檔案
- pyinstaller -F -w -i test.ico test.py 不會出現控制台,圖示為test.ico,-F生成單個.exe檔案
- pyinstaller -F --i test.ico test.py 會出現控制台,代碼中加一些調試代碼,便于發現問題,-F生成單個.exe檔案
- pyinstaller -D --i test.ico test.py 不會出現控制台,圖示為test.ico,-D生成多個.exe檔案
- pyinstaller -D --i test.ico test.py 會出現控制台,代碼中加一些調試代碼,便于發現問題,-D生成多個.exe檔案
其中-F 生成單個可執行檔案,檔案比較大
-D 生成多個檔案,其中有個.exe為執行檔案
問題1:針對打包後與代碼中調試不成功的例子,在代碼中加入一下調試的代碼,打包時開啟控制台,在控制台中可以檢視程式運作哪裡出現問題
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5CMxEjMjNmNyMDMxU2YhVDOxEzMjVGNwE2M3ADOyIWN18CX0JXZ252bj91Ztl2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
我這段代碼出現問題,是由于程式中需要打開的excel表格檔案不存在。将檔案加入到對應檔案夾,問題解決。
問題2:圖示不顯示
将.ico檔案轉為.qrc檔案,代碼中導入即可
- 建立title.text檔案,路徑為title.ico檔案所在的路徑,内容如下:
<RCC>
<qresource prefix = "/">
<file>title.ico</file>
</qresource>
</RCC>
- 對檔案進行重命名 将title.text修改到title.qrc
- 使用pyrcc5對檔案進行轉化,pyrcc5是将檔案轉化為.py
如果pyrcc5沒有安裝的話,需要先安裝和配置
安裝方式:pip install pyqt5_tools
配置方式:
轉化方法:在resource.qrc所在路徑下打開cmd.
在cmd下輸入指令:pyrcc5 -o resource.py resource.qrc
同一個路徑下出現:resource.py
- 将resource.py 檔案放在代碼路徑下,在主程式中導入
import resource
self.setWindowIcon(QIcon(":/title.ico"))
- 再次運作,發現圖示可以正常出現