如何在VIM中指定Python解释器版本
How to specify Python interpreter version in VIM?
为了用插件Clang_complete在Vim中编写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的默认动态加载版本?
您可能不想(或者至少不应该(将python3
设置为vim的默认python解释器,因为这样一来,您的一些(大多数(插件将变得不兼容,例如YouCompleteMe
和clang_complete
本身,因为它们不支持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
如果需要,您可能还想链接到ruby
和lua
,然后最终运行
make build
make install
这是一个shell脚本,它将为您自动化整个过程。这可能有点过头了,但我认为这就是你应该如何处理的,以免在未来的包中出现兼容性问题。
" .gvimrc
let &pythonthreedll='C:...python37.dll'
let &pythonthreehome='C:...Python37'
检查:
:py3 print('hello')
和VIM应该匹配为Python(我的意思是64,32位(
windows vim x64下载
- 如何运行位于boost/libs/python/example/tutorial目录中的hello.cpp和Jamfil
- Pybind11:将元组列表从Python传递到C++
- 如何在c++中使用引用实现类似python的行为
- 从嵌入式解释器捕获 python 窗口输出C++
- 在C++中嵌入 Python:解释器在执行过程中的持久性
- 如何中断嵌入C++应用程序中的python解释器
- 使用自定义模块构建 python 解释器时出现问题
- 如何使用C++的字节码优化初始化嵌入式 Python 解释器
- 用c++对象的全局实例扩展嵌入式python解释器
- boost.python 解释器实例化
- Boost Python:停止解释器
- 如何允许通过嵌入式 Python 解释器中调用的脚本导入第三方库
- 如何为嵌入式python解释器设置工作目录
- Python C API使用WinPython Python解释器而不是标准Python解释器
- 向python嵌入式解释器公开c++类实例
- 加载DLL时Python解释器退出
- c++ Python解释器——Py_Initialize正在崩溃
- c++中嵌入式python的Matplotlib和子解释器
- 如何在VIM中指定Python解释器版本
- 从python解释器中调用一个方法