将vim / youcomepleteme与anaconda python集成

时间:2014-02-26 00:48:07

标签: python vim anaconda

我正在尝试使用Vim插件YouCompleteme,直到我安装了Anaconda的Python发行版。

相关信息:

:Vim中的YcmDebugInfo返回     'E858:Eval没有返回有效的Python对象。'

在我的vimrc中我有:

Bundle 'Valloric/YouCompleteMe'
let g:ycm_auto_trigger = 1
let g:ycm_path_to_python_interpreter = '/Users/briantoomey/anaconda/bin/python'
let g:ycm_filetype_blacklist = {}

在github上探查其他人的vimrc后,我也试过了

let g:ycm_path_to_python_interpreter = '/usr/bin/python'
let g:ycm_path_to_python_interpreter = '/usr/bin/python2'

vim中返回的错误都与

有关
youcompleteme#Enable

在bash中,

$ which python

产量

$ /Users/briantoomey/anaconda/bin/python

和     $ python --version

产量

$ Python 2.7.6 :: Anaconda 1.9.0 (x86_64)

有什么想法吗?

3 个答案:

答案 0 :(得分:2)

我和@Andy_Haden的情况相同,并且在chrischoy上发表了关于github issue 8(https://github.com/Valloric/YouCompleteMe/issues/8)的评论:

“”” 对于anaconda用户,

在编译YCM并重命名为正常时,暂时将/ path / to / anaconda / bin / python-config中的python-config文件更改为python-config.tmp。它会做到这一点。 “”“

答案 1 :(得分:1)

操作系统:Redhat 7

错误:YouCompleteMe不可用:需要使用Python(2.7.1+或3.4+)支持的Vim编译

必须停用conda环境。

rm -rf ~/.vim ~/vim #start fresh if needed
git clone https://github.com/vim/vim.git
git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim
cd vim/src

离开CONDA环境conda deactivate(如果需要退出基地,则多次)

注意:“ conda的完整路径”需要更改为conda安装的完整路径。在配置之前,测试路径使用ls是正确的。

./configure --disable-nls --enable-cscope --enable-gui=no --enable-multibyte --enable-pythoninterp --enable-rubyinterp --with-features=huge --with-python-config-dir=<full path to>/anaconda3/lib/python3.6/config-3.6m-x86_64-linux-gnu --with-tlib=ncurses --without-x
make
sudo make install

激活回conda环境。 conda activate <my env>

放入.vimrc(包括NERDTree和flake8):

set nocompatible              " required
filetype off                  " required

" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()

" alternatively, pass a path where Vundle should install plugins
"call vundle#begin('~/some/path/here')

" let Vundle manage Vundle, required
Plugin 'gmarik/Vundle.vim'

" add all your plugins here (note older versions of Vundle
" used Bundle instead of Plugin)

" ...

" All of your Plugins must be added before the following line
call vundle#end()            " required
filetype plugin indent on    " required

" Enable folding
set foldmethod=indent
set foldlevel=99

" Enable folding with the spacebar
nnoremap <space> za

Plugin 'tmhedberg/SimpylFold'

Plugin 'vim-scripts/indentpython.vim'

set encoding=utf-8

Bundle 'Valloric/YouCompleteMe'

let g:ycm_autoclose_preview_window_after_completion=1
map <leader>g  :YcmCompleter GoToDefinitionElseDeclaration<CR>

Plugin 'vim-syntastic/syntastic'

Plugin 'nvie/vim-flake8'

let python_highlight_all=1
syntax on

Plugin 'jnurmine/Zenburn'
Plugin 'altercation/vim-colors-solarized'

Plugin 'scrooloose/nerdtree'

Plugin 'jistr/vim-nerdtree-tabs'

let NERDTreeIgnore=['\.pyc$', '\~$'] "ignore files in NERDTree

安装:

vim #enter vim
:PluginInstall #at command prompt

cd ~/.vim/bundle/YouCompleteMe 
python3 ./install.py #youcompleteme requires an installation step

通过使用vim打开python文件来测试安装

答案 2 :(得分:0)

我使用anaconda,但使用conda-forge提供我的python二进制文件。到目前为止,我已经可以将它与YouCompleteMe一起使用而没有任何问题。要使用它,您只需要执行以下操作,该操作也在其网站上列出。

conda config --add channels conda-forge 
conda install python

然后正常构建YouCompleteMe,它应该可以正常工作。我已经使用Python 3.6和3.7成功地做到了这一点。