AttributeError: Can‘t get attribute ‘_unpickle_block‘
Python 3.8 读取pickle报错AttributeError: Can't get attribute '_unpickle_block'
问题:Python 3.6/3.8 运行 pd.read_pickle('xxx.p') 时报错
File ".../.local/lib/python3.8/site-packages/pandas/io/pickle.py", line 187, in read_pickle
return pc.load(f, encoding=None)
File ".../.local/lib/python3.8/site-packages/pandas/compat/pickle_compat.py", line 249, in load
return up.load()
File "/usr/lib/python3.8/pickle.py", line 1212, in load
dispatch[key[0]](self)
File "/usr/lib/python3.8/pickle.py", line 1537, in load_stack_global
self.append(self.find_class(module, name))
File ".../.local/lib/python3.8/site-packages/pandas/compat/pickle_compat.py", line 189, in find_class
return super().find_class(module, name)
File "/usr/lib/python3.8/pickle.py", line 1581, in find_class
return _getattribute(sys.modules[module], name)[0]
File "/usr/lib/python3.8/pickle.py", line 331, in _getattribute
raise AttributeError("Can't get attribute {!r} on {!r}"
AttributeError: Can't get attribute '_unpickle_block' on <module 'pandas._libs.internals' from '.../.local/lib/python3.8/site-packages/pandas/_libs/internals.cpython-38-x86_64-linux-gnu.so'>
原因:猜测中
第一次出现:由Python3.8 + pandas 1.4.2生成文件在装有Python 3.6 + pandas 1.1.5的电脑上运行时报错。
第二次出现:由Python 3.6 + pandas 1.1.5 生成的文件,在Python 3.8 + pandas 1.1.5 上运行。
解决办法:更新或更改 pandas 的版本
第一次出现:在Python 3.8 上 pip install pandas==1.1.5,然后在Python 3.6 电脑上成功运行。
第二次出现:在Python 3.8 上 用回以前版本 pip3 install pandas==1.4.2
太麻烦了。。但是Python 3.6那个电脑我没有sudo权限。。无法保持Python版本一致。。
更多推荐
所有评论(0)