Python 3.6加載pickle文件報錯ModuleNotFoundError: No module named ‘__builtin__’怎么辦?

Python 3.6加載pickle文件報錯ModuleNotFoundError: No module named ‘__builtin__’怎么辦?

python 3.6環境下加載pickle文件時,遇到ModuleNotFoundError: No module named ‘__builtin__’錯誤,該如何解決?

本文針對Python 3.6.12環境下使用pickle加載.pkl文件出現的此錯誤進行分析和解決方案提供。 假設用戶在test.py文件中嘗試加載m30k_deen_shr.pkl文件(項目目錄結構此處略去)。

錯誤原因在于__builtin__模塊。這是Python 2.x中的模塊,Python 3.x中其功能已整合到builtins模塊。因此,該錯誤表明加載的.pkl文件很可能是用Python 2.x生成的。

pickle文件與Python版本強相關。不同Python版本對pickle格式的處理方式不同,導致Python 3.x無法正確解析Python 2.x生成的.pkl文件。

立即學習Python免費學習筆記(深入)”;

解決方法

  1. 檢查文件來源: 確認m30k_deen_shr.pkl文件的生成代碼使用的Python版本。如果是Python 2.x,則需要重新使用Python 3.x生成該文件。

  2. 使用正確的寫入模式: 使用pickle寫入文件時,務必使用wb模式 (open(…, ‘wb’)),避免文本模式寫入導致換行符等問題,從而造成加載失敗。

  3. 重新生成.pkl文件: 使用Python 3.x代碼重新處理數據并序列化為.pkl文件。 確保在Python 3.x環境下執行序列化操作。

完成以上步驟后,再次嘗試在Python 3.6環境中加載.pkl文件,即可解決ModuleNotFoundError: No module named ‘__builtin__’錯誤。

? 版權聲明
THE END
喜歡就支持一下吧
點贊15 分享