【问题标题】:How to specify Python interpreter version in VIM?如何在 VIM 中指定 Python 解释器版本?
【发布时间】:2015-11-13 20:48:56
【问题描述】:

为了在 Vim 中使用插件 Clang_complete 编写 C++。
安装后出现这个错误:

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

但是我的vim同时支持python和python3。 +python/dyn +python3/dyn
然后我检查我的 python 解释器:

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

所以,我认为原因是我的vim默认动态加载python3解释器。
我可以更改python解释器吗?或者设置python的默认动态加载版本?

【问题讨论】:

    标签: python c++ vim plugins autocomplete


    【解决方案1】:
    " .gvimrc
    
    let &pythonthreedll='C:\...\python37.dll'
    let &pythonthreehome='C:\...\Python37'
    

    检查:

    :py3 print('hello')
    

    VIM 应该匹配为 Python(我的意思是 64、32 位)

    windows vim x64 download

    【讨论】:

      【解决方案2】:

      您可能不想(或至少不应该)将python3 设置为vim 的默认python 解释器,因为这样您的一些(大部分)插件将变得不兼容,例如YouCompleteMe 和@987654324 @ 本身,因为他们没有 python3 支持。通常支持python3的插件会让你决定是否要使用它,方法是添加到.vimrc

      let g:syntastic_python_python_exec = 'python3' 
      

      解决方案: 显示0:echo has('python') 实际上是在告诉您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 并不难。首先确保删除您当前的所有 vim 安装,例如使用 aptitude 你会这样做:

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

      克隆 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 
      

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

      make build
      make install
      

      Here 是一个 shell 脚本,它将为您自动执行整个过程。这可能有点矫枉过正,但我​​认为这是您应该处理的方式,以免与您未来的软件包出现兼容性问题。

      【讨论】:

      • 感谢您的回答!我重新编译我的vim,我的问题就解决了。但我还有一个问题,+python/dyn +python3/dyn 是什么意思,
      • 不是说我可以在vim中使用py或者py3命令了吗? (备注:我检查了我原来的vim版本,它实际上没有-L/usr/lib/python2.7/config-x86_64-linux-gnu -lpython2.7。)
      • 这意味着 vim 动态链接到 python2python3,但没有专门使用 python 标志编译或默认选择 python3。如果您使用sudo apt-get install vim 安装vim,就会发生这种情况。我可能错了,但是以这种方式安装 vim 可能实际上不会显示编译器标志。
      猜你喜欢
      • 2011-03-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-17
      • 1970-01-01
      相关资源
      最近更新 更多