问题
我在导入pyarrow的时候遇到这个报错:
ImportError:libbrotlienc.so.1: cannot open shared object file: No such file or directory
摸索
1.刚才我因为numba版本过低,从0.53到0.54升级了numba,结果它给我安装和删除了很多包,我估计其中就有涉及到pyarrow的。
于是科学上网,看到有个大神说
You have installed pyarrow=0.14.1 while arrow-cpp=0.15.0. The versions of these libraries need to be the same.
大概意思就是pyarrow与arrow-cpp的版本不一致,一语惊醒梦中人啊!
然后我conda list看出两者版本确实不太一样,pyarrow为4.0.1,而arrow-cpp已经5.0.0了(我之前好像pyarrow也是5.0.0,估计是numba给我改了版本,所以诸位能不升级包还是别升级吧)
2.所以我就运行
conda uninstall pyarrow
把pyarrow删除了,但是我看到conda list中还是有pyarrow,而python环境中也能导入pyarrow,只是这是个空包,里面没有任何函数。应该是虽然删除了包,但是有残留
3.然后我通过conda clean清理了包
https://www.jianshu.com/p/f14ac62bef99
并且把anaconda3/lib/python3.8/site-packages目录下的pyarrow文件夹删除,这个时候conda list已经看不到pyarrow了。之后我又用
conda install pyarrow==5.0.0 -c conda-forge
安装新的pyarrow。安装完成后,还是出现一模一样的问题
心态崩了 T_T
4.然后继续度娘,看到两篇文章
https://blog.csdn.net/hhhuua/article/details/80705655
https://blog.csdn.net/lhl_blog/article/details/87914237
尝试了一下,依旧不行
5.突然想起来,之前我的pyarrow好像是通过pip安装的啊!
心里隐隐感觉摸索到了真相,但是随之冷静下来,先把残留的包删除
find ~ -name pyarrow
在 anaconda3/pkgs下看到pyarrow-5.0.0-py38h1bc9799_0_cpu这个文件夹
于是删除掉
rm -rf ~/anaconda3/pkgs/pyarrow-5.0.0-py38h1bc9799_0_cpu
最后,执行
pip install pyarrow
没报错,成功!