Python 3.6加載Pickle文件報(bào)錯(cuò)"__builtin__"模塊未找到怎么辦?

Python 3.6加載Pickle文件報(bào)錯(cuò)"__builtin__"模塊未找到怎么辦?

python 3.6環(huán)境下加載Pickle文件時(shí),遇到ModuleNotFoundError: No module named ‘__builtin__’錯(cuò)誤的解決方法

在Python數(shù)據(jù)處理中,Pickle模塊常用于序列化和反序列化對(duì)象。然而,加載.pkl文件時(shí),可能會(huì)出現(xiàn)上述錯(cuò)誤。本文分析此問(wèn)題并提供解決方案。

問(wèn)題描述:

在Python 3.6.12環(huán)境下,嘗試加載m30k_deen_shr.pkl文件時(shí),出現(xiàn)ModuleNotFoundError: No module named ‘__builtin__’錯(cuò)誤。項(xiàng)目目錄結(jié)構(gòu)正確,但運(yùn)行test.py文件失敗。

立即學(xué)習(xí)Python免費(fèi)學(xué)習(xí)筆記(深入)”;

問(wèn)題根源及解決方法

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

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

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

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

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊5 分享