Python 3.6加載Pickle文件報錯"__builtin__"模塊未找到怎么辦?

Python 3.6加載Pickle文件報錯"__builtin__"模塊未找到怎么辦?

python 3.6環境下加載Pickle文件時,遇到ModuleNotFoundError: No module named ‘__builtin__’錯誤的解決方法

在Python數據處理中,Pickle模塊常用于序列化和反序列化對象。然而,加載.pkl文件時,可能會出現上述錯誤。本文分析此問題并提供解決方案。

問題描述:

在Python 3.6.12環境下,嘗試加載m30k_deen_shr.pkl文件時,出現ModuleNotFoundError: No module named ‘__builtin__’錯誤。項目目錄結構正確,但運行test.py文件失敗。

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

問題根源及解決方法

錯誤信息表明程序試圖訪問Python 2.x中的__builtin__模塊,而Python 3.x中該模塊已更名為builtins。因此,m30k_deen_shr.pkl文件很可能是用Python 2.x生成的。

解決方法:重新生成m30k_deen_shr.pkl文件。 具體步驟:

  1. 檢查生成.pkl文件的代碼: 確認代碼是否使用了Python 2.x。
  2. 使用Python 3.x重新運行代碼: 用Python 3.x版本重新執行生成.pkl文件的代碼。
  3. 使用正確的文件寫入模式: 使用pickle.dump()時,務必使用’wb’二進制寫入模式,而不是’w’文本寫入模式。’wb’模式能更好地處理Pickle序列化后的二進制數據,避免潛在的換行符等問題。

通過以上步驟,即可避免__builtin__模塊相關的錯誤,成功加載.pkl文件。

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