2016-09-29 81 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