天天看點

156.人工智能——PySide6+FastDeploy項目打包問題處理

飛槳的FastDeploy是一款易用高效的推理部署開發套件。覆寫業界熱門AI模型并提供開箱即用的部署體驗,包括圖像分類、目标檢測、圖像分割、人臉檢測、人臉識别、人體關鍵點識别、文字識别、語義了解等多任務,滿足開發者多場景,多硬體、多平台的産業部署需求。

FastDeploy目前版為0.3.0,關于FastDeploy如何使用,可以參看前期的文章或官網(https://github.com/PaddlePaddle/FastDeploy)。

  • 141.人工智能——FastDeploy:PPYOLOE模型部署,實作目标檢測
  • 142.人工智能——PySide6+FastDeploy實作可視化圖像分類預測

本文的打包項目是:基于FastDeploy的可視化推理預測系統。主要記錄一下打包過程遇到的一些問題。

156.人工智能——PySide6+FastDeploy項目打包問題處理

界面一

打包工具:pyinstaller 5.3

運作環境:python 3.9.13 + fastdeploy-python 0.3.0+PySide6 6.3.2

打包之前,程式運作正常。

問題一:打包exe檔案,程式能啟動,但目标檢測無法正常運作。提示:plugins.xml:1:0: File was not found。

156.人工智能——PySide6+FastDeploy項目打包問題處理

通過分析查找,發現打包後缺少檔案:"C:\Program Files\Python39\Lib\site-packages\fastdeploy\libs\third_libs\openvino\runtime\bin\plugins.xml" 。發現問題就好解決,加入檔案即可。

156.人工智能——PySide6+FastDeploy項目打包問題處理

問題二:加入plugins.xml檔案,又出現新的問題:RuntimeError: [ NETWORK_NOT_READ ] Unable to read the model: models\det-model\picodet\model.pdmodel Please check that model format: pdmodel is supported and the model is correct. Available frontends:

156.人工智能——PySide6+FastDeploy項目打包問題處理

經過分析查找:發現缺少兩個檔案,其實就是openvino運作庫檔案。

  • "C:\Program Files\Python39\Lib\site-packages\fastdeploy\libs\third_libs\openvino\runtime\bin\openvino_intel_cpu_plugin.dll"
  • "C:\Program Files\Python39\Lib\site-packages\fastdeploy\libs\third_libs\openvino\runtime\bin\openvino_paddle_frontend.dll"
156.人工智能——PySide6+FastDeploy項目打包問題處理

問題三:打封包件減掉不必要的運作庫。修改spec檔案:

excludes=['llvmlite','matplotlib','pandas','PIL','pyarrow','PyQt5','scipy']

把openvino運作庫目錄,複制到項目目錄中:C:\Program Files\Python39\Lib\site-packages\fastdeploy\libs\third_libs\openvino\runtime\bin

156.人工智能——PySide6+FastDeploy項目打包問題處理

最後修改.spec檔案,内容如下:

# -*- mode: python ; coding: utf-8 -*-

block_cipher = None

a = Analysis(['visiondeploy.py'],

pathex=[],

binaries=[],

datas=[

("bin\openvino_intel_cpu_plugin.dll","."),

("bin\openvino_paddle_frontend.dll","."),

("bin\plugins.xml",".")

],

hiddenimports=[],

hookspath=[],

hooksconfig={},

runtime_hooks=[],

excludes=['llvmlite','matplotlib','pandas','PIL','pyarrow','PyQt5','scipy'],

win_no_prefer_redirects=False,

win_private_assemblies=False,

cipher=block_cipher,

noarchive=False)

pyz = PYZ(a.pure, a.zipped_data,

cipher=block_cipher)

exe = EXE(pyz,

a.scripts,

a.binaries,

a.zipfiles,

a.datas,

[],

name='visiondeploy',

debug=False,

bootloader_ignore_signals=False,

strip=False,

upx=True,

upx_exclude=[],

runtime_tmpdir=None,

console=False,

disable_windowed_traceback=False,

target_arch=None,

codesign_identity=None,

entitlements_file=None , icon='logo.ico')

運作打包指令:生成獨立可執行檔案即可

>VisionDeploy>pyinstaller visiondeploy-F.spec

156.人工智能——PySide6+FastDeploy項目打包問題處理

打包中

打包成功檢視運作包大小:168MB,還是可以接受的。

156.人工智能——PySide6+FastDeploy項目打包問題處理

打包結果

目标檢測:

156.人工智能——PySide6+FastDeploy項目打包問題處理

目标檢測結果

說明:關于Python項目打包出現的問題,很多情況就是打包後缺少檔案,因為pyinstaller 沒有分析提取到這些依賴檔案,通過修改spec檔案增加檔案就可以。

繼續閱讀