亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 cx_freeze 時如何加載 pickle 模型?

使用 cx_freeze 時如何加載 pickle 模型?

素胚勾勒不出你 2022-12-06 15:36:17
作為應用程序構建的我的腳本在嘗試加載 pickle 模型數據時停止工作。以下是有問題的代碼:with open('model_pickle','rb') as f:    mp = pickle.load(f)這是我正在使用的安裝文件:setup(    name="Test",    version="1.0",    options={"build_exe":{"include_files":["model_pickle"]}},    executables=[target])該程序在執行 python 腳本時正常工作。但是,在通過 將其轉換為可執行文件后cx_freeze,問題在于打開 pickle 模型數據文件。我已經在有數據和沒有數據的情況下對此進行了測試,所以我很確定這就是問題所在。
查看完整描述

3 回答

?
犯罪嫌疑人X

TA貢獻2080條經驗 獲得超4個贊

你用 IDLE 測試過你的程序嗎?可能存在pickle解碼錯誤...如果沒有,請嘗試使用此代碼創建您的 exe。它會導入您計算機上的所有庫。它更長,但更容易:只需運行一個文件。


無論如何,更好的用戶PyInstaller(也是 PyPI 上可用的模塊) -相關堆棧溢出答案


查看完整回答
反對 回復 2022-12-06
?
一只斗牛犬

TA貢獻1784條經驗 獲得超2個贊

您可以按如下方式導入模型。model = pickle.load(open('MODEL_PATH','rb'))希望這會起作用!



查看完整回答
反對 回復 2022-12-06
?
慕無忌1623718

TA貢獻1744條經驗 獲得超4個贊

我 99.99% 肯定您還需要將該model_pickle文件setup(…)作為包數據添加到您的調用中,以便它作為可執行文件工作。這是setup.py顯示包數據選項的片段:


from setuptools import setup, find_packages


PROJECT_NAME = 'my_project' # this should reflect your package structure


setup(

    # …

    packages=[package for package in find_packages() \

                       if package.startswith(PROJECT_NAME)],


    package_dir={ 'my_project' : 'my_project' },

    package_data={ '' : ['*.*'] },

    include_package_data=True,

    zip_safe=True,

    # …

)

另外,如果我是你,我會將數據文件重命名為類似的名稱model_pickle.pkl,這樣你的package_data表達式就不必是雙通配符(如上所述)。


如果這不能立即奏效,我還建議添加一個MANIFEST.in明確命名二進制數據文件的文件。


查看完整回答
反對 回復 2022-12-06
  • 3 回答
  • 0 關注
  • 130 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號