如何在VIM中指定Python解释器版本? [英] How to specify Python interpreter version in VIM?

查看:3013
本文介绍了如何在VIM中指定Python解释器版本?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

为了在Vim中使用插件编写C ++,Clang_complete。

安装后,会发生此错误:

 处理函数< SNR> 14_ClangCompleteInit时检测到错误。< SNR> 14_initClangCompletePython:
clang_complete:没有可用的python支持。
无法使用clang库
使用python支持编译vim以使用libclang

但是我的vim支持python和python3。 + python / dyn + python3 / dyn

然后检查我的python解释器:

 :echo has('python')#output is 0 
:echo has('python3')#output is 1
pre>

所以,我想原因是我的vim动态加载python3解释器默认情况下。

我可以更改python解释器吗?或者设置默认的动态加载版本的python?

解决方案

你可能不想(或至少不应该) code> python3 作为vim的默认python解释器,因为你的插件的一些(大部分)将变得不兼容,例如 YouCompleteMe clang_complete 本身,因为他们没有 python3 支持。通常,支持 python3 的插件可以让您决定是否要通过添加到 .vimrc

  let g:syntastic_python_python_exec ='python3'

解决方案: :echo has('python')显示 0 实际上告诉你vim可能不是用 python2 编译的。所以首先检查 vim --version 的输出,你应该能够看到你的编译器构建vim的共享库列表。你看到以下? (例如对于python 2.7):

  -L / usr / lib / python2.7 / config-x86_64-linux-gnu  - lpython2.7 

如果没有(或者如果你看到 -lpython2.x 和 -lpython3.x 我建议你从源代码编译vim,具体链接到 -lpython2.x aptitude ,你可以这样做: / p>

  sudo apt-get remove --purge vim vim-runtime vim-gnome vim-tiny vim-common vim-gui-common 

clone vim mercurial

  hg clone https://code.google.com/p/vim/ 
cd vim

,然后使用以下标志运行 ./ configure

  ./configure --with-features = huge \ 
--enable-cscope \
--enable-pythoninterp \
--enable-largefile \
--with-python-config-dir = / usr / lib / python2.7 / config

您还可能想要链接 ruby​​ lua 如果需要,然后最后运行

  make build 
make install

这里是shell脚本,将自动执行整个过程为你。这可能有点过分,但我认为这是你应该如何处理这不与运行与您的未来包的兼容性问题。


In order to write C++ in Vim with plugin, Clang_complete.
After installing, this error occurs:

Error detected while processing function <SNR>14_ClangCompleteInit..<SNR>14_initClangCompletePython:
clang_complete: No python support available.
Cannot use clang library
Compile vim with python support to use libclang

But my vim supports both python and python3. +python/dyn +python3/dyn
then I check my python interpreter:

:echo has('python')      # output is 0
:echo has('python3')     # output is 1

So, I think the reason is my vim dynamic load python3 interpreter by default.
Can I change python interpreter? or set default dynamic load version of python?

解决方案

You probably don't want to (or at least should not) set python3 as the default python interpreter for vim, as then some (most of) your plugins will become incompatible, such as YouCompleteMe and clang_complete itself, because they do not have python3 support. Normally plugins that do support python3 let you decide if you want to use it by adding to your .vimrc

let g:syntastic_python_python_exec = 'python3' 

Solution: the :echo has('python') showing 0 is actually telling you that vim is perhaps not compiled with python2. So first check the output of vim --version and you should be able to see a list of shared libraries that your compiler has built vim against. Do you see the following? (e.g. for python 2.7):

-L/usr/lib/python2.7/config-x86_64-linux-gnu -lpython2.7

If not (or if you see both -lpython2.x and -lpython3.x I suggest you compile vim from source, linking it specifically to -lpython2.x. It is not that difficult to build vim from source. First make sure to remove all your current vim installation, for instance using aptitude you'd do:

sudo apt-get remove --purge vim vim-runtime vim-gnome vim-tiny vim-common vim-gui-common

clone vim mercurial

hg clone https://code.google.com/p/vim/
cd vim

and then run ./configure with the following flags:

 ./configure --with-features=huge \
        --enable-cscope \
        --enable-pythoninterp \
        --enable-largefile \
        --with-python-config-dir=/usr/lib/python2.7/config 

you might also want to link against ruby and lua if you want, and then finally run

make build
make install

Here is shell script that will automate the whole process for you. This might be a bit of an overkill, but I think this is how you should handle this to not run with compatibility issues with your future packages.

这篇关于如何在VIM中指定Python解释器版本?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆