macOS中vim安装deoplete报错 E605

101 篇文章 8 订阅

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/python@3.9/Frameworks/Python.framework/Versions/3.9/lib/python39.zip’, ‘/usr/local/opt/python@3.9/Frameworks/Python.framework/Versions/3.9/lib/python3.9’, ‘/usr/local/opt/python@3.9/Frameworks/Python.framework/Versions/3.9/lib/python3.9/lib-dynload’, ‘/usr/local/opt/python@3.9/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages’, ‘vim_path’]

根据这些信息,可以看出我的python3安装的路径是:/usr/local/opt/python@3.9/

cd /usr/local/opt/python@3.9/bin
./pip3 install pynvim

问题产生原因分析(可忽略)

vim中使用的pip3路径是:/usr/local/opt/python@3.9/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/python@3.9/bin                                           [21:31:59]
cd: string not in pwd: cd
FAIL: 1
itkey@ycmit: ~ $ cd /usr/local/opt/python@3.9/bin                                              [21:32:15]
itkey@ycmit: /usr/local/opt/python@3.9/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/python@3.9/bin

那么pip3的路径就是/usr/local/opt/python@3.9/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

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值