jedi-vim doesn't find python2 dist-packages, but python3 yes
Jedi-vim会自动补全python3 dist软件包,但无法找到python 2.7 dist软件包。 我使用python 2运行程序没有问题。 其他一切均正常运行。 我发现vim与python3一起运行。
我正在使用同时安装了python2.7和python3的Ubuntu 16.04,但默认情况下使用python2.7。 我已经为python2的pip安装了jedi,并为Bundle安装了jedi-vim。
有没有办法设置jedi-vim的路径来寻找python2 dist-packages? 我需要使用python 2来编译vim吗?
我在.vimrc文件中添加了以下行,尝试更改版本:
1 | let g:jedi#force_py_version = 2 |
而且我收到了此错误消息。
1 2 3 4 | 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:
1 2 3 4 | 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 |
python(2.7):打印sys.path
1 | ['', '/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)
1 | ['', '/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
1 | Plugin 'davidhalter/jedi-vim' |
解决了!
问题是我安装了带有python3支持而不是python2的vim。 我认为Ubuntu 16.04是默认设置。 您可以通过以下方式进行检查:
1 | vim --version | grep python |
如果输出如下所示:
1 2 | +cryptv +linebreak -python +vreplace +cscope +lispindent +python3 +wildignore |
然后,您可以运行以下命令来解决问题:
1 2 3 | 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中的加号
1 2 | +cryptv +linebreak +python +vreplace +cscope +lispindent -python3 +wildignore |
而已。 为我工作
感谢https://github.com/JBakamovic/yavide/blob/master/docs/FAQ.md