2016-09-29 82 views
3

Jedi-vim为python3 dist-packages自动完成,但不能发现python 2.7 dist-packages。我运行我的程序使用python 2没有问题。其他一切正常运行。我发现vim正在用python3运行。jedi-vim没有找到python2 dist-packages,但python3是

我使用的是Ubuntu 16.04,它安装了python2.7和python3,但默认使用python2.7。我已经为Python2安装了jedi,并且使用Bundle安装了jedi-vim。

有没有办法设置jedi-vim的路径来寻找python2 dist-packages?我需要使用python 2来编译vim吗?

我在.vimrc文件中加入这一行试图更改版本:

let g:jedi#force_py_version = 2 

而且我得到这个错误信息。

Error: jedi-vim failed to initialize Python: Could not setup g:jedi#force_py_ver 
sion: jedi#setup_py_version: Vim(pyfile):E319: Sorry, the command is not availab 
le in this version: pyfile /home/santi/.vim/bundle/jedi-vim/initialize.py (in fu 
nction jedi#init_python[3]..<SNR>65_init_python, line 6) 

虽然将版本设置为3时可以正常工作。

VIM --version:

VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Jun 16 2016 10:50:38) 
(...) 
Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H -Wdate-time -g -O2 -fPIE -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1  
Linking: gcc -Wl,-Bsymbolic-functions -fPIE -pie -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -o vim  -lm -ltinfo -lnsl -lselinux -lacl -lattr -lgpm -ldl  -L/usr/lib/python3.5/config-3.5m-x86_64-linux-gnu -lpython3.5m -lpthread -ldl -lutil -lm 

蟒(2.7):打印的sys.path

['', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/home/santi/.local/lib/python2.7/site-packages', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages/gtk-2.0'] 

python3打印(sys.path中)

['', '/usr/lib/python35.zip', '/usr/lib/python3.5', '/usr/lib/python3.5/plat-x86_64-linux-gnu', '/usr/lib/python3.5/lib-dynload', '/usr/local/lib/python3.5/dist-packages', '/usr/lib/python3/dist-packages'] 

的.vimrc

Plugin 'davidhalter/jedi-vim' 
+0

可以切换Python解释器。阅读jedi-vim的README。 –

+0

@DaveHalter:我的Ubuntu 16.10安装有同样的问题。在我的.vimrc中有'let g:jedi#force_py_version = 2'这行时出现同样的错误信息,当我执行':call jedi#force_py_version(2)'时出现同样的错误。如果我在这些命令中用3替换2,尽管没有错误。 – krumpelstiltskin

+0

也许向jedi-vim跟踪器添加问题?我没有实现这一部分,我觉得这是一个错误或者你的安装是错误的(因此我认为stackoverflow可能不是正确的地方)。 –

回答

0

解决了!

问题是我安装了python3支持的vim而不是python2。我认为Ubuntu 16.04是默认的。您可以检查:

vim --version | grep python 

如果输出如下:

+cryptv   +linebreak  -python   +vreplace 
+cscope   +lispindent  +python3   +wildignore 

然后你就可以运行这些命令来解决问题:再次

sudo apt install vim-gnome-py2 
sudo update-alternatives --set vim /usr/bin/vim.gnome-py2 
sudo update-alternatives --set gvim /usr/bin/vim.gnome-py2 

检查的加python

+cryptv   +linebreak  +python   +vreplace 
+cscope   +lispindent  -python3   +wildignore 

就是这样。工作对我来说

由于https://github.com/JBakamovic/yavide/blob/master/docs/FAQ.md