天天看點

Python打包調試問題解決

使用pyinstaller打包,發現問題:

  1. 代碼運作時調試的結果不一緻
  1. 代碼中設定的圖示打包後沒有顯示出來

打包代碼程式

test.py為入口函數main()所在的檔案

  1. pyinstaller -F -w -i test.ico test.py 不會出現控制台,圖示為test.ico,-F生成單個.exe檔案
  1. pyinstaller -F --i test.ico test.py 會出現控制台,代碼中加一些調試代碼,便于發現問題,-F生成單個.exe檔案
  1. pyinstaller -D --i test.ico test.py 不會出現控制台,圖示為test.ico,-D生成多個.exe檔案
  1. pyinstaller -D --i test.ico test.py 會出現控制台,代碼中加一些調試代碼,便于發現問題,-D生成多個.exe檔案

其中-F 生成單個可執行檔案,檔案比較大

-D 生成多個檔案,其中有個.exe為執行檔案

問題1:針對打包後與代碼中調試不成功的例子,在代碼中加入一下調試的代碼,打包時開啟控制台,在控制台中可以檢視程式運作哪裡出現問題

Python打包調試問題解決

我這段代碼出現問題,是由于程式中需要打開的excel表格檔案不存在。将檔案加入到對應檔案夾,問題解決。

Python打包調試問題解決

問題2:圖示不顯示

将.ico檔案轉為.qrc檔案,代碼中導入即可

  1. 建立title.text檔案,路徑為title.ico檔案所在的路徑,内容如下:
<RCC>
 <qresource prefix = "/">
   <file>title.ico</file>
 </qresource>
</RCC>
           
  1. 對檔案進行重命名 将title.text修改到title.qrc
  1. 使用pyrcc5對檔案進行轉化,pyrcc5是将檔案轉化為.py

如果pyrcc5沒有安裝的話,需要先安裝和配置

安裝方式:pip install pyqt5_tools

配置方式:

Python打包調試問題解決

轉化方法:在resource.qrc所在路徑下打開cmd.

在cmd下輸入指令:pyrcc5 -o resource.py resource.qrc

同一個路徑下出現:resource.py

Python打包調試問題解決
  1. 将resource.py 檔案放在代碼路徑下,在主程式中導入
import resource
self.setWindowIcon(QIcon(":/title.ico"))
           
  1. 再次運作,發現圖示可以正常出現
Python打包調試問題解決