美文网首页Machine Learning && Computational Catalysis
Vim自动补齐Python-编译安装YouCompleteMe

Vim自动补齐Python-编译安装YouCompleteMe

作者: 南窗风声 | 来源:发表于2018-02-10 15:43 被阅读379次

        环境:Centos7+vim8+Python2.7

说明:其中Python2.7为系统自带,本人用pyenv安装了Python3.6.4,切换到3.6的环境之后,但在最终安装YCM时,始终出现报错:PyThreadState_Get: no current thread。经查询是动态编译库lib的问题,试了网上搜寻的多种方法,但始终没有解决,最终还是选择了2.7的版本来编译YCM,希望用Python3安装成功的朋友也分享一下经验。

1. Vim8.0下载安装

        a. 下载VIM8.0

    wget ftp://ftp.vim.org/pub/vim/unix/vim-8.0.tar.bz2

        b. 解压后进入vim80目录,安装如下插件,注意安装之前可能会需要以下依赖包,缺少什么根据报错自行安装即可。

            yum –y install bzip2-devel bzip2-libs

            yum –y install python-devel

            编译安装

./configure--with-features=huge \

            --enable-multibyte \

            --enable-pythoninterp=yes \

            --enable-gui=gtk2 \

            --enable-cscope

make && make install

如果报了相关错误,可根据自己系统Python config的位置自行加入如下选项,--with-python-config-dir=/usr/lib64/python2.7/config(根据自己Python实际的位置,选择config路径),其中python-devel,这个依赖包很重要,如果没有安装,可能在安装完成vim之后,不支持Python,检查安装完成后是否支持Python:vim --version | grep python

如上图,Python前面出现加号,则说明编译安装成功

2. YouCompleteMe下载编译安装

    a. 先下载vundle,用其管理并安装一并插件

git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim

    b. 在自己home目录下:vim .vimrc 添加如下内容,安装编辑完成之后根据文章末尾,再添加其配置信息即可。

set nocompatible

filetype off set rtp+=~/.vim/bundle/Vundle.vim

call vundle#begin() Plugin 'gmarik/Vundle.vim'

call vundle#end()

filetype plugin indent on


        保存之后进入vim,用 :PluginInstall 命令进行下载插件,下载完成之后进入该目录:进行编译安装,如果报错,缺少插件,可进行安装,我遇到的报错,需要安装如下插件,

yum –y install cmake make gcc gcc-c++

之后再编译安装

cd ~/.vim/bundle/YouCompleteMe

./install.py --clang-complete

        至此YCM安装完成,其他插件通过vundle可以自动安装,vimrc配置文件内容如下截图:可点击此处参考其他人的.vimrc配置内容。

参考文章:https://www.jianshu.com/p/297802d16fb4?from=timeline&isappinstalled=0

相关文章

网友评论

  • Megatron7:刚刚也遇到这个问题了(不能通过pyenv安装YouCompleteMe)。在使用pyenv环境,添加上这个配置项,export $PYTHON_CONFIGURE_OPTS = "--enable-framework"。然后再通过pyenv安装python即可。--分析来源:https://github.com/Valloric/YouCompleteMe
    南窗风声:@Megatron7 安装安装YouCompleteMe所依赖的Python和tornado有什么关系?
    Megatron7:经过两天的尝试+翻阅无数issues。因该是不支持virtualenv环境,所以在安装的时候采用原生环境安装:/usr/bin/python, 我比较好奇的是它是怎么和我的库关联上的。我的/usr/bin/python是python2.7,但tornado的库是在pyenv3.6.4下,求解
    Megatron7:在OS X平台使用export PYTHON_CONFIGURE_OPTS="--enable-framework"。如果是其他平台,使用export PYTHON_CONFIGURE_OPTS="--enable-shared"

本文标题:Vim自动补齐Python-编译安装YouCompleteMe

本文链接:https://www.haomeiwen.com/subject/vpisyxtx.html