macOS中vim安装deoplete报错 E605

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

参考:
https://github.com/roxma/vim-hug-neovim-rpc/issues/47

猜你喜欢

转载自blog.csdn.net/lxyoucan/article/details/114374189
今日推荐