Python 最大的挑戰之一是分發。使用者需要安裝 Python、管理虛擬環境並解決依賴關係,然後才能執行你的應用程式。PyInstaller 透過將 Python 應用程式凍結為可在未安裝 Python 的系統上執行的獨立執行檔來解決這個問題。
PyInstaller 分析你的 Python 腳本,發現所有匯入的模組和資料檔案,並將它們與最小的 Python 直譯器一起捆綁到單一執行檔或目錄中。結果是一個可分發的軟體包,使用者可以像任何原生應用程式一樣透過雙擊來執行。
主要功能
| 功能 | 描述 |
|---|---|
| 跨平台 | 為 Windows、macOS 和 Linux 建立執行檔 |
| 單一檔案模式 | 將所有內容捆綁到單一執行檔中 |
| 自動依賴偵測 | 尋找並包含所有匯入的模組 |
| 隱藏匯入支援 | 針對動態匯入的手動指定 |
| 資料檔案捆綁 | 包含圖像、配置和資源檔案 |
建置流程
flowchart LR
A[Python 腳本] --> B[PyInstaller 分析]
B --> C[依賴發現]
C --> D{找到匯入}
D -->|標準函式庫| E[已捆綁]
D -->|第三方| E
D -->|資料檔案| E
E --> F[建置產出物]
F --> G{輸出模式}
G -->|單一檔案| H[單一 EXE/APP]
G -->|單一目錄| I[包含所有檔案的目錄]
G -->|自訂| J[Spec 檔案控制]PyInstaller 首先分析腳本以了解其依賴樹,然後將所有內容捆綁在一起。Spec 檔案為進階使用者提供了對建置各個方面的精細控制。
平台支援
| 平台 | 執行檔類型 | 大小(最小) | 備註 |
|---|---|---|---|
| Windows | .exe | 8-15 MB | 也可透過第三方工具支援 .msi |
| macOS | .app 套件 | 10-20 MB | 支援程式碼簽署以便分發 |
| Linux | ELF 二進位檔 | 8-15 MB | 不需要執行時期依賴 |
何時使用 PyInstaller
PyInstaller 非常適合分發 GUI 應用程式、為非技術團隊提供的內部工具、部署到沒有 Python 的系統,以及建立工具的便攜版本。它並非為 Web 應用程式或服務而設計,在這些場景中伺服器端 Python 已經可用。
如需更多資訊,請造訪 PyInstaller GitHub 儲存庫 和 官方 PyInstaller 文件。
常見問題
Q:PyInstaller 能將所有內容捆綁到一個檔案中嗎?
A:可以,使用 --onefile 標誌,所有內容都會被壓縮到一個執行檔中。
Q:PyInstaller 能與虛擬環境一起使用嗎? A:可以,從應用程式的虛擬環境中執行時效果最佳。
Q:防毒軟體可能會標記 PyInstaller 執行檔嗎? A:有時候會,因為執行檔包含嵌入式 Python 直譯器。程式碼簽署有助於減少誤報。
Q:PyInstaller 支援 Python 3.13 嗎? A:是的,最新版本支援 Python 3.8 到 3.13。
Q:我可以使用 PyInstaller 混淆我的 Python 程式碼嗎? A:PyInstaller 捆綁的是位元組碼而非原始碼,但它不是真正的混淆器。如需更強的保護,請與加密工具結合使用。
無程式碼也能輕鬆打造專業LINE官方帳號!一鍵導入模板,讓AI助你行銷加分!