未捕捉到异常:[vim-hugg-neovim-rpc]需要一个":pythonx import[pynvim



我在linux上使用常规vim(而不是neovim(。我正在尝试使用Deomplete进行自动完成。我知道存储库的标题最后写着.nvim,但不知何故,自动更正仍然有效。但即使它有效,每当我启动vim时,我都会收到这个错误:

[vim-hug-neovim-rpc] Vim(pythonx):Traceback (most recent call last):
Error detected while processing function deoplete#enable[9]..deoplete#initialize[1]..deoplete#init#_initialize[10]..<SNR>68_init_internal_variables[28]..neovim_rpc#serveraddr:
line   18:
E605: Exception not caught: [vim-hug-neovim-rpc] requires one of `:pythonx import [pynvim|neovim]` command to work

我不知道它为什么这么做,因为自动完成功能很好,但它有点烦人,我想摆脱它。我能做什么?

这个解决方案对我有效,但我目前使用的是macOS。我之所以分享,是因为背后的想法应该是一样的,也许可以帮助其他用户。

基本上,我所做的是通过de VIM:中的这个命令来确定我的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/o
pt/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', '_vi
m_path_']

所以我不得不使用Python 3.9安装pynvim,问题就解决了。

同样,在我使用macOS的场景中,步骤是:

brew link --overwrite python@3.9 --force
pip3 install pynvim

参考文献:

https://github.com/roxma/vim-hug-neovim-rpc/issues/47#issuecomment-630323947https://github.com/roxma/vim-hug-neovim-rpc/issues/47#issuecomment-622954462

我站在类似问题的前面,但在macOS中。唯一的例外是,我使用了许多不同版本的python,我更喜欢使用pyenv中的python,而不是brew包管理器中的python(

重要提示:这种方法的主要缺点是,作为vim用户(通过brewPM安装了vim(,每次你更新brew包,vim维护人员更新python的依赖版本时,你都将被迫重复此操作。好消息是,这种情况并不经常发生。

  1. 飞行前检查

    $ which python
    /Users/myusername/.pyenv/shims/python
    $ python --version
    Python 3.9.7. 
    
  2. 打开Vim并检查编辑器使用的Python版本

    :pythonx import sys; print(sys.path)
    

    你应该得到类似于下面的结果:

    [
    '/usr/local/Cellar/python@3.10/3.10.2/Frameworks/Python.framework/Versions/3.10/lib/python310.zip',
    '/usr/local/Cellar/python@3.10/3.10.2/Frameworks/Python.framework/Versions/3.10/lib/python3.10', 
    '/usr/local/Cellar/python@3.10/3.10.2/Frameworks/Python.framework/Versions/3.10/lib/python3.10/lib-dynload',
    '/usr/local/Cellar/python@3.10/3.10.2/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages', 
    '_vim_path_', 
    '/Users/myusername/.dotfiles/configuration/.vim/plugged/vim-virtualenv/autoload'
    ]
    
  3. 输入brew的vim安装程序使用的python版本的目录,并通过其pip3可执行安装丢失的包

    /usr/local/Cellar/python@3.10/3.10.2/bin/pip3 install pynvim
    
  4. 重新打开vim并享受没有错误的

相关内容