python打包exe 之打包sklearn模型中的各种坑及其解决方法。
之前學習了如何打包,如何建立虛擬環境打包,以及如何帶資源打包exe.
python打包成exe 可執行文件 。教程
使用pipenv建立虛擬環境解決python打包exe文件過大的問題(附打包帶圖標,多個py文件打包exe)
python將資源文件一起打包進exe 講解(有算例)
今天在此打包資源文件基礎上,學習如何打包sklearn模型。
sklearn是機器學習模型,當在現實生活中,我們有時需要跑模型,而神經網絡需要的包更多,程序編寫也更復雜。在僅僅是為了解決問題時,我們常常傾向于選擇sklearn機器學習模型。
但是打包sklearn模型時常常出現各種錯誤。
我總結下我打包時出現的錯誤及其解決方法。
問題1:from sklearn.externals import joblib 失敗 cannot import name joblib
也許你在打包后運行exe文件出現這個問題,那是因為你在安裝程序所需要的庫時,sklearn一般是默認最新的,而最新的skleran中已經沒有joblib。
這是因為joblib已經從sklearn中移除了,可以直接改為 import joblib
注意改原始程序中的模型保存與加載代碼,
改為joblib
joblib使用方法
import joblib
#將訓練的模型保存到磁盤(value=模型名) 默認當前文件夾下
joblib.dump(filename=‘xx.model’)
model1 = joblib.load(filename=“xx.model”)
問題2:ImportError: No module named ‘sklearn.utils.cython_blas’
打開.spec文件
添加hiddenimports=[‘cython’, ‘sklearn’, ‘sklearn.utils._cython_blas’ ],
問題3:pyinstaller 打包后運行exe程序出現的"ModuleNotFindError"
問題如圖所示:
我在程序中使用的是svm程序,然后運行顯示沒有這個包。
首先,使用pyinstaller 打包生成".spec" 文件
接下來,使用文本編輯器打開".spec"文件,在 hiddenimport=[] 部分添加缺少的module
-hidden-import 應用需要的包,但是沒有被打包進來,這里的錯誤是最多的,因為一般是第三方包隱式調用其他包,然后打包出來的程序顯示Fate Error不能運行。需要自己再添加進去,
如圖所示:圖中導入是貝葉斯模型,因為我后面模型改用貝葉斯啦,非svm
如果是svm,解決方法同圖。
然后使用pyinstaller 生成新的exe程序:
pyinstaller xx.spec打包教程見上面給的鏈接
在解決這三個問題后,我的示范算例最后結果
可以運行
深度學習打包教程
python打包exe之打包深度學習模型踩坑記錄及其解決辦法。
電氣工程的計算機萌新:余登武。如果你覺得本文對你有用,請點個贊支持下,謝謝。
總結
以上是生活随笔為你收集整理的python打包exe 之打包sklearn模型中的各种坑及其解决方法。的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 印度埃及总是分不清?
- 下一篇: websocket python爬虫_p