如何使用 PyInstaller 將 Python 腳本打包成可執行檔案
PyInstaller 是一個專門用來將 Python 腳本打包成執行檔的工具,例如在 Windows 上的 .exe,或其他作業系統的執行檔。透過 PyInstaller,其他使用者即使沒有安裝 Python,也能執行你的程式。
以下教你如何快速上手 PyInstaller。
1. 安裝 PyInstaller
在終端機執行以下指令來安裝 PyInstaller:
pip install pyinstaller
安裝完成後,輸入以下指令確認是否安裝成功:
pyinstaller --version
若顯示版本號,表示安裝成功。
2. 基本用法
假設你有一個 Python 腳本名為 example.py,執行以下指令進行打包:
pyinstaller example.py
這樣會產生一個 dist 資料夾,裡面包含打包好的可執行檔案。
3. 常用選項
1. 單檔模式
將所有依賴及程式打包成一個單一檔案:
pyinstaller --onefile example.py
2. 隱藏終端視窗
適用於圖形界面程式,避免執行時跳出終端機視窗:
pyinstaller --noconsole example.py
3. 自訂圖示
如果想要加入程式圖示,可以使用 --icon 指定圖示檔案(需為 .ico 格式):
pyinstaller --onefile --icon=myicon.ico example.py
4. 完整範例
結合上述選項:
pyinstaller --onefile --noconsole --icon=myicon.ico example.py
4. 打包後的檔案結構
執行 PyInstaller 後,會產生以下檔案與資料夾:
build資料夾:臨時檔案,供打包過程使用,可忽略。dist資料夾:包含打包後的可執行檔案。.spec檔案:PyInstaller 的配置檔案,可供修改後重新打包使用。
5. 解決常見問題
問題 1:執行檔過大
PyInstaller 將所有依賴一起打包,因此檔案可能較大。可以使用壓縮工具 UPX 優化大小:
- 安裝 UPX:
sudo apt install upx # Ubuntu/Debian - 使用 UPX 壓縮:
pyinstaller --onefile --noconsole --upx-dir=/path/to/upx example.py
問題 2:模組缺失
有時候某些動態導入的模組無法被 PyInstaller 自動識別,可以用 --hidden-import 指定:
pyinstaller --onefile --hidden-import=<模組名稱> example.py
問題 3:跨平台打包
PyInstaller 必須在目標平台執行。例如,要打包 Windows 程式,需在 Windows 上運行 PyInstaller。如果需要在其他作業系統上製作執行檔,建議使用虛擬機或 Docker。
