1. 程式人生 > 其它 >【解決方案】Pyinstaller打包exe策略(簡單實用)

【解決方案】Pyinstaller打包exe策略(簡單實用)

場景說明

  • 在業務場景中, 經常需要Python開發一些小程式/指令碼/GUI介面,進行簡單的專案測試或未安裝Python 的小夥伴們使用。

  • 使用Pyinstaller將Python指令碼或者專案打包,生成可執行的.exe檔案。

  • Pyinstaller是一個很不錯的免費打包工具,支援Windows,Linux和MacOS,完美支援32位和64位系統。

  • 除了Pyinstaller, 還可以使用py2exe進行打包

pyinstaller安裝

pip install pyinstaller

打包引數

# 常用打包引數
# -F -D互斥引數
-F  打包成一個exe檔案,小專案可以採用,開啟比較慢,多個.py打包時不能使用
-D 預設引數,打包結果放入到建立的資料夾中,可以看到裡面有很多的依賴檔案 # -w -c互斥引數 -w 使用專案的GUI介面,無cmd控制檯 -c 預設引數,使用cmd控制檯 如果打包檔案執行報錯,可嘗試用-c 顯示控制檯 -n 執行專案的名稱,預設.py的檔名 -i 將ico圖示打包到exe檔案中 --hidden-import 打包時導包資訊 # 打包PyQt專案強烈建議 帶上以下引數 --hidden-import PyQt5.sip # 打包命令示例 # 在專案的根目錄下執行打包命令 pyinstaller -w xxx.py --hidden-import PyQt5.sip
# 打包結果輸出在專案根目錄下的 dist資料夾中 # 不建議使用 -F打包成一個exe檔案 所謂:打包一時爽,開啟5秒鐘 # 非-F命令下, 靜態資源、建好的Sqlite資料庫可以直接放入dist中 生成的資料夾中

說明

  • Pyinstaller只是將Python直譯器和指令碼打包成一個可執行檔案, 不同於編譯成真正的機器碼。所以程式碼的執行效率是降低的,只是解決了小白使用者的操作難度。
  • 打包時會分析專案的依賴,並將相關的依賴打包進來,並進行加密處理
  • 不同的作業系統, 需要在不同的作業系統進行打包。

debug

控制檯debug

  • 在本地執行成功, 建議在第一次打包exe時使用 -c命令,這樣可以在控制檯中顯示可能的報錯資訊。
  • 如果打包時沒有用-c不會出現控制檯或者控制檯一閃而過,看不到報錯資訊, 可以在cmd命令列視窗執行exe檔案

fatal error faild to execute script file

  • Pyinstaller打包時有些庫沒有打包進去,可以將報錯資訊中的庫通過 --hidden-import 報錯的包 的進行打包