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文件到桌面

1cd Desktop 2mkdir backup_python 3cp /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就可以完美的工作啦!
附截图:

vim

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )