Hypackpy 是一款由白月黑羽開發的 Python 項目打包工具,它與 PyInstaller 等傳統工具不同,通過直接打包解釋器環境和項目代碼,并允許開發者修改配置文件以排除不需要的內容,從而創建方便用戶一鍵運行的可執行程序。以下是使用 Hypackpy 打包 Windows 可執行文件的詳細步驟:
一、準備工作
- 下載 Hypackpy 工具 :從Hypackpy 國內下載鏈接或國外下載鏈接獲取 Hypackpy 工具。
- 準備干凈的 Python 解釋器環境 :若沒有現成的干凈環境,可下載其提供的 Python3.10 純凈包,解壓后建議修改目錄名為與項目相關的名字,如 Python310-proj1,以便識別。
二、安裝項目依賴包
在干凈的 Python 解釋器環境中安裝項目所需的包。例如,使用白月黑羽提供的 Python 解釋器環境,視頻中的第一個示例項目,需執行如下命令:
<打包解釋器目錄>\python -m pip install excel2img
三、設置打包配置文件
- 生成配置文件 :進入到 hypackpy 工具目錄,執行命令
addcfg.bat
或者直接雙擊addcfg.bat
,生成名為hypackpy_cfg.py
的打包配置文件。 - 編輯配置文件 :使用 vscode、pycharm 等編輯器打開
hypackpy_cfg.py
文件。在該文件中,可依據項目實際情況進行詳細配置,以下是一些關鍵配置項及含義:project_name
:項目名稱,在生成的可執行文件夾中會用到。project_version
:項目的版本號。project_entry
:指定項目的入口文件,如main.py
。python_home
:指定用于打包的 Python 解釋器環境路徑。site_packages_include
:可指定需要包含的第三方庫路徑,若項目依賴的某些庫未被自動包含,可通過此選項手動添加。site_packages_exclude
:指定需要排除的第三方庫,以減少打包文件的大小。
* **`data_files_include`** :包含項目所需的數據文件,如圖片、配置文件等。
* **`data_files_exclude`** :排除不需要的數據文件。
* **`python_exclude_packages`** :排除 Python 標準庫中未使用的包,如`pip`、`setuptools`等,可減少打包文件體積。
* **`python_exclude_files`** :排除 Python 標準庫中未使用的文件。
四、執行打包
進入到 hypackpy 工具目錄,執行命令pack.bat
或者直接雙擊pack.bat
,Hypackpy 會依照配置文件的指引,開始打包過程。在打包過程中,Hypackpy 會進行以下操作:
- 復制文件 :將指定的 Python 解釋器環境、項目代碼以及依賴的第三方庫復制到一個臨時目錄。
- 分析依賴 :對項目代碼進行分析,確定所需的依賴文件,并將其包含在打包文件中。
- 壓縮文件 :將復制的文件進行壓縮,以減小打包文件的大小。
- 生成可執行程序 :根據配置文件中的設置,生成可執行程序。
五、打包后的處理
- 測試可執行程序 :在打包完成后,進入到生成的可執行文件所在目錄,雙擊運行可執行文件,檢查程序是否能夠正常運行,確保所有功能都正常。
- 清理打包文件 :如果對打包結果滿意,可以刪除打包過程中產生的臨時文件,以節省磁盤空間。
六、Hypackpy 的優勢與適用場景
- 優勢 :Hypackpy 通過直接打包解釋器環境和項目代碼,能夠避免因依賴庫復雜或動態導入等問題導致的打包失敗或運行錯誤。同時,通過配置文件的精細控制,可以有效地減小打包文件的體積,提高打包效率。此外,它還支持修改配置文件以排除不需要的內容,使打包過程更加靈活和可控。
- 適用場景 :Hypackpy 特別適用于那些依賴庫較多、結構復雜的 Python 項目,以及對打包文件體積有較高要求的場景。例如,一些基于 PySide6、PySide2、PyQt6、PyQt5 等圖形界面庫開發的項目,或者需要打包包含大量數據文件的項目。
七、常見問題及解決方法
- 缺少文件或庫 :如果在運行打包后的程序時提示缺少某些文件或庫,可檢查配置文件中的
site_packages_include
和data_files_include
選項,確保所需的文件和庫已被正確包含。同時,也可以通過檢查打包后的文件夾結構,確認相關文件是否已成功復制。 - 打包文件體積過大 :如果打包后的文件體積較大,可通過仔細檢查配置文件中的排除規則,進一步排除不必要的包、文件或數據,以減小體積。還可以考慮對項目代碼進行優化,減少不必要的依賴。
- 兼容性問題 :由于 Hypackpy 只支持 Windows 打包,且不支持 Conda 和虛擬環境打包,因此在使用時需確保開發環境為 Windows 系統,并避免使用與 Conda 或虛擬環境相關的工具和設置。
通過以上步驟和注意事項,使用 Hypackpy 打包 Python 項目為 Windows 可執行文件將變得簡單高效。開發者能夠根據項目需求靈活配置打包參數,生成滿足要求的可執行文件,實現軟件的便捷部署和分發。