https://github.com/Shougo/deoplete.nvim
错误信息
[vim-hug-neovim-rpc] Vim(pythonx):ModuleNotFoundError: No module named ‘neovim’
处理 VimEnter 自动命令 “"…function deoplete#enable[9]…deoplete#initialize[1]…deoplete#init#_initialize[10]…95_init_internal_variabl
es[35]…VimEnter 自动命令 "”…function deoplete#enable[9]…deoplete#initialize[1]…deoplete#init#_initialize[10]…95_init_internal_vari
ables[29]…neovim_rpc#serveraddr 时发生错误:
第 18 行:
E605: 异常没有被捕获: [vim-hug-neovim-rpc] requires one of :pythonx import [pynvim|neovim]
command to work
解决办法
确定vim使用的python版本
:pythonx import sys; print(sys.path)
我的信息如下:
[’/usr/local/opt/[email protected]/Frameworks/Python.framework/Versions/3.9/lib/python39.zip’, ‘/usr/local/opt/[email protected]/Frameworks/Python.framework/Versions/3.9/lib/python3.9’, ‘/usr/local/opt/[email protected]/Frameworks/Python.framework/Versions/3.9/lib/python3.9/lib-dynload’, ‘/usr/local/opt/[email protected]/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages’, ‘vim_path’]
根据这些信息,可以看出我的python3安装的路径是:/usr/local/opt/[email protected]/
cd /usr/local/opt/[email protected]/bin
./pip3 install pynvim
问题产生原因分析(可忽略)
vim中使用的pip3路径是:/usr/local/opt/[email protected]/bin/pip3
系统环境变量中的pip3路径是:/Library/Frameworks/Python.framework/Versions/3.9/bin/pip3
因为路径不同,所以导致你在系统中执行的pip3 install pynvim
,虽然安装成功了,但是vim认为你缺少这个pynvim包。
不清楚为什么系统中会有python3的两个版本。也就是系统级别有一个python3,用户级别有一个python3,系统级别的优先级好像更高一些。
上面的方式我已经成功解决了
我的测试执行结果如下:
itkey@ycmit: ~ $ pip3 uninstall pynvim [21:31:24]
Found existing installation: pynvim 0.4.3
Uninstalling pynvim-0.4.3:
Would remove:
/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/neovim/*
/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/pynvim-0.4.3-py3.9.egg-info
/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/pynvim/*
Proceed (y/n)? y
Successfully uninstalled pynvim-0.4.3
itkey@ycmit: ~ $ vim [21:31:32]
itkey@ycmit: ~ $ source ~/.zshrc [21:31:42]
itkey@ycmit: ~ $ vim [21:31:44]
itkey@ycmit: ~ $ vim [21:31:48]
itkey@ycmit: ~ $ cd cd /usr/local/opt/[email protected]/bin [21:31:59]
cd: string not in pwd: cd
FAIL: 1
itkey@ycmit: ~ $ cd /usr/local/opt/[email protected]/bin [21:32:15]
itkey@ycmit: /usr/local/opt/[email protected]/bin $ ./pip3 uninstall pynvim [21:32:17]
Found existing installation: pynvim 0.4.3
Uninstalling pynvim-0.4.3:
Would remove:
/usr/local/lib/python3.9/site-packages/neovim/*
/usr/local/lib/python3.9/site-packages/pynvim-0.4.3.dist-info/*
/usr/local/lib/python3.9/site-packages/pynvim/*
Proceed (y/n)? y
Successfully uninstalled pynvim-0.4.3
根据 :pythonx import sys; print(sys.path)
的执行结果可以看出,vim中使用的python3路径应该是:
/usr/local/opt/[email protected]/bin
那么pip3的路径就是/usr/local/opt/[email protected]/bin/pip3
itkey@ycmit: ~ $ which pip3 [21:38:18]
/usr/local/bin/pip3
itkey@ycmit: ~ $ ls -lh /usr/local/bin/ |grep pip3 [21:39:04]
lrwxrwxr-x 1 root admin 66B 12 22 13:28 pip3 -> ../../../Library/Frameworks/Python.framework/Versions/3.9/bin/pip3
lrwxrwxr-x 1 root admin 68B 12 22 13:28 pip3.9 -> ../../../Library/Frameworks/Python.framework/Versions/3.9/bin/pip3.9
可以分析出环境变量中的pip3默认指向的是:
/Library/Frameworks/Python.framework/Versions/3.9/bin/pip3