MAC下vim插件YouCompleteMe和HomeBrew python不兼容的解决方法

说到vim优化,肯定少不了大牛Valloric的YouCompleteMe插件,这个插件主要服务于vim各种语言的自动补全,速度很快很优雅,所以就必须要装啦。具体安装方法见大牛的github:
https://github.com/Valloric/YouCompleteMe.git

安装以后打开vim发现各种报错。 这是咋回事呢? 原来是这个插件和mac homebrew安装的python并不兼容,具体报错信息见:

importerror: dlopen(/usr/local/cellar/python/2.7.13/frameworks/python.framework/versions/2.7/lib/python2.7/lib-dynload/_io.so, 2): symbol not found: __pycodecinfo_getincrementaldecoder referenced

针对这个问题,网上主流的解决方法是重装macvim和python,或者brew unlink python
但是试了一下重装并没有解决这个问题,而且也不能因为vim优化让系统python退化为mac默认的2.6吧。所以就去翻出了大牛的源码,发现这个问题主要还是和python各个版本的_io.so不一样有关系,而且很多人在装图像处理的包时也会报类似的错误。
所以就实验了一下用旧版本的io源文件替换2.7.13版本的io文件,发现问题解决!

下面放解决方法:

首先在终端里运行:

sudo find / -name _io.so

会把系统下所有名字带_io.so的文件路径都列出来,下面是我的:
/Applications/Google Drive.app/Contents/Resources/lib/python2.7/lib-dynload/_io.so
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/_io.so
/Users/Nico/macports/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/_io.so
/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/_io.so

然后备份2.7.13的io文件到桌面

cd Desktop
mkdir backup_python
cp /usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/_io.so backup_python/2.7.13_io.so

然后用老文件替换2.7.13的文件

cp /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/_io.so /usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/_io.so

然后YouCompleteMe就可以完美的工作啦!
附截图:

21204156_3HVb.png

vim

 

转载于:https://my.oschina.net/chaenomeles/blog/882941

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值