Python:ImportError: No module named indexes.base
目录
我在使用pickle重新load数据的时候出现的问题,错误的全部提示如下:
Traceback (most recent call last):
File "segment.py", line 17, in <module>
word2id = pickle.load(pk)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/pickle.py", line 1378, in load
return Unpickler(file).load()
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/pickle.py", line 858, in load
dispatch[key](self)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/pickle.py", line 1090, in load_global
klass = self.find_class(module, name)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/pickle.py", line 1124, in find_class
__import__(module)
ImportError: No module named indexes.base
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
出现的原因
相同的代码和数据在两台不同的机器上运行。起初我认为这台出现错误的机器少了某些python安装包。但是安装的包太多,我没办法去去一个个尝试,幸好使用的是virsualenv,直接将另一台机器上的环境拷贝到这台机器上,运行之后是没有问题的,但为了弄清是缺少哪一个python安装包,于是我使用原来的编译环境,重新使用pickle生成原来需要load的数据,然后重新load,这时候没有报错。
总结
总结原因,是由于原来在生成pickle文件的时候使用的pandas版本和现在load pickle文件的版本不相同导致的。所以不管是写python还是其他语言的代码,编译环境很重要,一旦某一个包的版本不同也有可能导致程序的错误。
用pip安装指定版本的包。
pip install pandas==x.x.x
转载自:https://blog.csdn.net/qcyfred/article/details/78568376