【解決方案】Pyinstaller打包exe策略(簡單實用)
阿新 • • 發佈:2021-10-28
場景說明
-
在業務場景中, 經常需要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 報錯的包 的進行打包