簡體   English   中英

pyinstaller 在隱藏導入中添加嵌套模塊不起作用

[英]pyinstaller adding nested modules in hidden imports is not working

我正在使用 pyinstaller 將“.py”腳本轉換為 exe 文件。 該腳本采用一些 CLI 參數並在其上運行 scikit-learn 和 keras 模型並返回預測。 當像“python3 predict.py”一樣執行時,“.py”工作正常。 但是,當我使用:

pyinstaller --onefile predict.py

它給出了這個錯誤:

ModuleNotFoundError: No module named 'sklearn.neighbors._typedefs'

但是當我做 pip3 list 時,我可以清楚地看到 scikit-learn 安裝在那里。 在搜索堆棧溢出后,我了解到 pyinstaller 在獲取二級依賴項時遇到問題,可以通過在隱藏導入中添加庫來解決。 我已經這樣做了:

a = Analysis(['predict.py'],
             pathex=['/Users/mac/Desktop/Fiverr/Clothes_Classification/Scripts'],
             binaries=[],
             datas=[],
             hiddenimports=['sklearn.neighbors._typedefs'],
             hookspath=[],
             runtime_hooks=[],
             excludes=[],
             win_no_prefer_redirects=False,
             win_private_assemblies=False,
             cipher=block_cipher,
             noarchive=False)

但同樣的錯誤仍然存在。 來自 keras 的 model 給 output 就好了,但是 sklearn 的所有模型都失敗了。 另外,我正在使用 pickle 加載 sklearn 的模型和 load_model 從 keras 加載 keras 模型。

我是這樣執行的:

./predict "/Users/mac/Desktop/Fiverr/Clothes_Classification/Dataset/Images/5336-0010.jpg" "/Users/mac/Desktop/Fiverr/Clothes_Classification/Scripts/Models/"

其中給出了 sys.argv 在程序中使用的 2 個 CLI。 我認為他們沒有問題。

任何幫助都感激不盡。 謝謝!

.spec 文件應該修改為 hidden-import typdefs (注意缺少下划線) hiddenimports=['sklearn.neighbors.typedefs'],

而不是hiddenimports=['sklearn.neighbors._typedefs'],因為錯誤可能暗示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM