如何在VIM中指定Python解释器版本? [英] How to specify Python interpreter version in VIM?
问题描述
为了在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
pre>
:echo has('python3')#output is 1
所以,我想原因是我的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 $首先确保删除所有当前的vim安装,例如使用
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 asYouCompleteMe
andclang_complete
itself, because they do not havepython3
support. Normally plugins that do supportpython3
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')
showing0
is actually telling you that vim is perhaps not compiled withpython2
. So first check the output ofvim --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 usingaptitude
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
andlua
if you want, and then finally runmake 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屋!