自己编译安装Vim 8.2和Python 3.8.7,然后安装YouCompleteMe(以下简称YCM),启动vim时总是报错:
YouCompleteMe unavailable: /data-ib/home/zhangxf2/.local/lib/python3.8/lib-dynload/_socket.cpython-38-x86_
64-linux-gnu.so: undefined symbol: PyUnicode_FSConverter
折腾了好几天都没能解决(窃以为没有YCM,用Vim写代码毫无乐趣),反复重装Python,Vim和YCM,始终不能确定到底是哪个出了问题。最终终于找到解决办法,参见https://github.com/ycm-core/YouCompleteMe/issues/3580。
问题源自Vim,验证方法很简单。从上述报错信息可知问题源自模块socket
,先打开Python,执行import socket
无报错,说明与Python无关;再打开vim,执行
:python3 import socket
立即出现上述报错信息,说明问题出自Vim,与YCM无关。解决方法也很简单,按上述解决办法里提示的,先执行
export LDFLAGS="-rdynamic"
然后重新编译安装Vim即可。
网友评论