首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Fedora 24中启用vim上的python3

在Fedora 24中启用vim上的python3
EN

Unix & Linux用户
提问于 2016-08-24 08:29:16
回答 2查看 2.2K关注 0票数 2

我已经安装了vim,并配置了+python3/dyn。如果我运行vim --noplugin,我可以使用py3。但是,如果启用了插件,则会出现以下错误:

代码语言:javascript
复制
E837: This Vim cannot execute :py3 after using :python
E263: Sorry, this command is disabled, the Python library could not be loaded.

我怀疑其中一个插件加载了python2,因此定义了使用哪个python (类似于这个vim引导问题.)。问题是我不知道是哪一个。

如何在我的vim版本中使用python3?

安装了

插件的

以下插件与Vundle一起安装:

代码语言:javascript
复制
 60 " let Vundle manage Vundle, required
 61 Plugin 'gmarik/Vundle.vim'
 62 "Bundle 'Valloric/YouCompleteMe'
 63 Plugin 'tmhedberg/SimpylFold'
 64 Plugin 'vim-scripts/indentpython.vim'
 65 Plugin 'scrooloose/syntastic'
 66 Plugin 'scrooloose/nerdtree'
 67 Plugin 'jistr/vim-nerdtree-tabs'
 68 Plugin 'kien/ctrlp.vim'
 69 Plugin 'tpope/vim-fugitive'
 70 Plugin 'nvie/vim-flake8'
 71 "Plugin 'Lokaltog/powerline', {'rtp': 'powerline/bindings/vim/'}
 72 Plugin 'vim-airline/vim-airline'
 73 Plugin 'vim-airline/vim-airline-themes'
 74 Bundle 'klen/python-mode'
 75 Plugin 'jmcantrell/vim-virtualenv'

试图使Python3成为默认/首选版本

我试图通过运行以下命令使python3成为首选的选择:

代码语言:javascript
复制
alternatives --install /usr/bin/python python /usr/bin/python3.5 2
alternatives --install /usr/bin/python python /usr/bin/python2.7 1

vim (或其中一个插件)仍然使用python2.7,并且我得到了与上面相同的错误。

我的vim版本

代码语言:javascript
复制
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Jun  2 2016 10:02:17)
Included patches: 1-1868
Modified by <bugzilla@redhat.com>
Compiled by <bugzilla@redhat.com>
Huge version without GUI. 
EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2016-08-28 09:10:08

问题是,只要在if-语句中执行has('python'),就会导致python3在使用python/dyn和python 3/dyn编译python3时不可用。最简单的解决方案可能只是添加以下内容

代码语言:javascript
复制
if exists('py2') && has('python')
elseif has('python3')
endif

在Vundle加载任何东西之前,发送到您的.vimrc。然后,如果您需要使用python 2,则可以使用vim --cmd 'let py2 = 1'启动vim。

或者,我查看了您的插件,并设法找到了在has('python')之前执行has('python3')的3个插件:

  1. YouCompleteMe:我知道你已经对此发表了意见,但这是我偶然发现这个问题的原因,所以它可能会导致其他人来这里。在YouCompleteMe/plugin/youcompleteme.vim的第36行中,首先检查python3:elseif !has( 'python3' ) && !has( 'python' )
  2. python:如果您查看python/plugin/pymode.vim,在第275行周围有"has“If -语句,您会注意到您实际上可以设置一个全局变量g:_uspy来强制使用某个版本。所以,要么将g:_uspy = ':py3'放在.vimrc中的Vundle之前,要么在pymode.vim中编辑if-语句。
  3. vim-virtualenv:与YCM相同的交易,反转virtualenv/plugin/virtualenv.vim第10行if-语句的条件。

当然,如果您这样做的话,您只需要修复加载的第一个。

票数 9
EN

Unix & Linux用户

发布于 2017-02-02 09:33:30

假设你安装了python 3..。

与其运行:python,不如使用:python3:py3

在Vim中尝试这段代码,它将在python 3中运行。

代码语言:javascript
复制
:python3 print("Hello world")

欲了解更多信息:

代码语言:javascript
复制
:help python3
票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/305415

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档