Spacevim: Deoplete now requires msgpack >= 1.0.0

Created on 21 Feb 2020  路  13Comments  路  Source: SpaceVim/SpaceVim

Expected behavior, english is required

Deoplete should function with pynvim installed. Either add documentation specifying the requirement or revert to Deoplete 5.1.

The reproduce ways from Vim starting (Required!)

Debug info

Please press SPC h I, debug info will be put into clipboard, then paste all content below.

Screenshots

If you have any screenshots for this issue, please upload here. BTW you can use https://asciinema.org/ for recording video in terminal.

Most helpful comment

pip uninstall msgpack-python;
pip3 uninstall msgpack-python;
pip3 install -U msgpack

Fixed it

All 13 comments

@hermitmaster This should be list in :h deoplete, I do not check the latest version of deoplete.

It is already documented in deoplete documentation.

Thanks, @Shougo , so this issue should be closed.

pip uninstall msgpack-python;
pip3 uninstall msgpack-python;
pip3 install -U msgpack

Fixed it

I had to do this

pip uninstall msgpack-python;
pip3 uninstall msgpack-python;
pip3 install -U msgpack

I'm pretty confused, when I run pip uninstall msgpack-python; I get WARNING: Skipping msgpack-python as it is not installed..

Then when I run pip3 uninstall msgpack-python; I get WARNING: Skipping msgpack-python as it is not installed..

Then when I run pip3 install -U msgpack I get Requirement already up-to-date: msgpack in /Users/cohenkarnell/.virtualenvs/ts38/lib/python3.8/site-packages (1.0.0).

I think I'm using the same python because when I open vim and run !which python it shows the same path as which python in my terminal, and I also tried running the commands in vim by pre-pending ! to them in command mode, and got the same output.

What am I doing wrong here?

Okay, I seem to have gotten past _this_ issue by changing autoload/deoplete/init.vim in the following way, starting at line 282:

function! deoplete#init#_msgpack_version_check() abort
  python3 << EOF
# #####
# START MONKEYPATCH
import pip
pip.main(['uninstall', 'msgpack-python'])
pip.main(['install', '-U', 'msgpack'])
# END MONKEYPATCH
# ####
import vim
import msgpack
vim.vars['deoplete#_msgpack_version'] = msgpack.version
vim.vars['deoplete#_msgpack_version_check'] = msgpack.version < (1, 0, 0)
EOF
  return get(g:, 'deoplete#_msgpack_version_check', 0)
endfunction

I don't know. This is not deoplete problem.
It seems msgpack's renaming problem.

This definitely looks like a deoplete issue to me; running python -c 'import msgpack; print(msgpack.version) shows that msgpack is 1.0.0, but deoplete's health check still fails on this.

@TamaMcGlinn You need to check msgpack in your Vim's Python.
:python3 import msgpack
:python3 print(msgpack.version) prints real version for you.

I think your python from command line not equal to Vim's python.

Thank you @Shougo ! I found the solution. Although vim's python is the same as in my commandline, vim was using a 'python3' which I don't know where it got it from. I saw in init.vim that specifically python3 was referenced, but I didn't actually have a python3 link accessible from the commandline. So I did:

ln -s "`which python`" "`which python`3"

to create a link to python called python3 in the same directory. Then I restarted vim and the healthcheck succeeds now.

OK.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

rivalak picture rivalak  路  3Comments

jetm picture jetm  路  5Comments

fmind picture fmind  路  3Comments

wsdjeg picture wsdjeg  路  3Comments

Lobosque picture Lobosque  路  3Comments