當前位置:首頁 » 編程軟體 » python編譯體積大

python編譯體積大

發布時間: 2025-03-20 21:51:37

python嵌入式打包,解決大型庫打包難題

在使用python項目涉及大型第三方庫如torch後,項目體積可能超過1GB,導致使用nuitka或pyinstaller打包面臨打包成功率低、耗時長、打包後體積大等問題。本文探討使用嵌入式打包來解決這一難題。


解決思路在於只打包解釋器和項目核心代碼,第三方依賴由用戶在首次使用程序時現場安裝。實現這一方案的示例代碼如下:


示例代碼的項目構造

  1. main.py

  2. app文件夾,放置自定義代碼的文件

  3. start_main.py項目文件


運行效果與打包準備

  1. 准備項目依賴文件requirements.txt,激活項目環境,使用命令導出依賴文件。

  2. 下載嵌入式解釋器與pystand殼,從官網及github獲取。

  3. 准備get-pip.py腳本,用於下載pip工具。


開始打包

  1. 復制項目代碼至pystand同級目錄下的app文件夾,覆蓋pystand.int文件內容。

  2. 創建download.py腳本,用於提示用戶安裝依賴、運行pip工具安裝環境依賴,並提醒用戶重啟程序。

  3. 修改pystand.int文件,捕獲MoleNotFoundError錯誤,調用python解釋器運行download.py腳本。

  4. 將requirements.txt文件放置在runtime文件夾。

  5. 修改runtime文件夾中的._pth文件,取消import site前的注釋。

  6. 刪除pystand同級目錄的sitepackages文件夾。


測試與額外講解
測試包含如下步驟:

  1. 雙擊運行pystand,程序提示缺少依賴,執行下載腳本。

  2. 安裝完成後,提示用戶重啟程序。

  3. 重啟程序,首次啟動較慢(包含第三方庫py轉pyc的過程),後續啟動正常。


這種方式利用pip工具,使得程序分發體積僅11MB,避免了Python程序打包體積過大問題,同時避免了傳統打包方式可能遺漏依賴的問題。適合大型庫如torch、yolov、OCR等的項目。無需用戶電腦上已有Python環境,第三方庫安裝在runtimeLibsite-packages文件夾下,確保._pth文件取消注釋以避免no mole name pip錯誤。打包方式一次成功後,可多次復用,不同項目只需替換依賴文件、代碼及runtime文件夾內容。


torch庫的特殊打包
若項目依賴了torch庫的GPU版,需將依賴文件拆分為包含torch、torchaudio、torchvision三個庫的一份和包含其他依賴庫的一份。download.py腳本需先安裝torch庫。
熱點內容
蘋果手機怎麼能安裝安卓手機軟體 發布:2025-03-21 09:59:40 瀏覽:982
演算法的欺騙 發布:2025-03-21 09:57:32 瀏覽:855
怎麼做解壓玩具用家裡有的材料 發布:2025-03-21 09:33:10 瀏覽:515
sqlserver2008下載32位 發布:2025-03-21 09:31:01 瀏覽:288
android執行腳本 發布:2025-03-21 09:20:19 瀏覽:353
設計類編程 發布:2025-03-21 09:18:46 瀏覽:513
粉紅色是如何配置出來的 發布:2025-03-21 09:16:32 瀏覽:235
金融加密演算法 發布:2025-03-21 09:06:28 瀏覽:626
unzipforlinux 發布:2025-03-21 08:49:57 瀏覽:953
安卓wlan信號慢怎麼辦 發布:2025-03-21 08:35:35 瀏覽:870