Deoplete.nvim: deoplete requires msgpack 1.0.0+.

Created on 26 Feb 2020  Â·  23Comments  Â·  Source: Shougo/deoplete.nvim

Problems summary

After updating Deoplete, Neovim keeps complaining "[deoplete] deoplete requires msgpack 1.0.0+." and it isn't working.

I am not using pip but my package manager:

The following is for Python 3.

python-msgpack 0.6.2-3 [installed]
python-pynvim 0.4.1-1 [installed]

I have seen other bug reports, but haven't been able to solve the issue as I am not using pip.

Expected

I am using the identical config file on Vim and deoplete works on Vim.

Environment Information

  • deoplete version (SHA1): ebc9c155b0247314609e8d326e030adb3391f243

  • OS: Arch Linux

  • neovim/Vim :version output: v0.4.3

  • :checkhealth or :CheckHealth result(neovim only):

  - OK: exists("v:t_list") was successful
  - OK: has("timers") was successful
  - OK: has("python3") was successful
  - OK: Require Python 3.6.1+ was successful
  - ERROR: Require msgpack 1.0.0+ was not successful
    - ADVICE:
      - Please install/upgrade msgpack 1.0.0+.

Provide a minimal init.vim/vimrc with less than 50 lines (Required!)

Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' }
Plug 'roxma/nvim-yarp'
Plug 'roxma/vim-hug-neovim-rpc'
let g:deoplete#enable_at_startup = 1

How to reproduce the problem from neovim/Vim startup (Required!)

  1. PlugInstall
  2. Run nvim

Screenshot (if possible)

Neovim

neovim

Vim

vim

Most helpful comment

python3 -mpip install --user -U msgpack should work. If not, I beleive it is python's import problem rather than deoplete's.

All 23 comments

This is not deoplete problem.
Arch Linux does not release msgpack 1.0 yet. I don't know why.
You can install manually it by pip command.
So I will close.

If you don't want to pip ultimately, you need to downgrade deoplete.

Please read the documentation.

Note: If you really need to use older msgpack, please use deoplete ver.5.2 instead.
https://github.com/Shougo/deoplete.nvim/releases/tag/5.2

Hmm. The strange part is that Vim is working without any issues.

Really?
If so, your should check your msgpack's version in Vim/neovim.

:python3 import msgpack
:python3 print(msgpack.version)

It must be (1, 0, 0).

It is not.

vim1

vim2

Deoplete works fine in Vim with the version I have. It is only on Neovim it complains.

So you need to update msgpack package in the Python.

Deoplete works fine in Vim with the version I have. It is only on Neovim it complains.

Really?? I don't know why. It should not work both Vim8/neovim.

In the future it might be a good idea to think about the implications of updating a critical dependency like this as a lot of people aren't going to have access to the latest message pack without a few hacks to their system.

I had this issue and for now I'll downgrade deoplete.

I need to update msgpack by breaking changes.
Please read this.

https://github.com/Shougo/deoplete.nvim/issues/1071

python3 -mpip install --user -U msgpack should work. If not, I beleive it is python's import problem rather than deoplete's.

Yes. It is not deoplete problem...
But many many people complain about it.

OK. I have added for old msgpack compatibility.
It should work with old msgpack.

@pmyjavec Please use the latest version of deoplete.

@Shougo I'm still seeing this issue with the latest commit (e652df7)

Really?
I have removed deoplete requires msgpack 1.0.0+ check.
Note: Please search my code.
So why it is displayed? It is horror??

And your information is not reproduce-able.
So I ignore your comment

You need to upload more information like this.
https://github.com/Shougo/deoplete.nvim/issues/1077#issue-571309115

I modified autoload/health/deoplete.nvim to verify that it's still checking for 1.0.0+ as shown:

~/.config/nvim/plugged/deoplete.nvim master* ⇣
λ git diff
diff --git a/autoload/health/deoplete.vim b/autoload/health/deoplete.vim
index 9736570..14840c7 100644
--- a/autoload/health/deoplete.vim
+++ b/autoload/health/deoplete.vim
@@ -50,7 +50,7 @@ function! s:check_required_msgpack() abort
     call health#report_ok('Require msgpack 1.0.0+ was successful')
   else
     call health#report_error(
-          \ 'Require msgpack 1.0.0+ was not successful',
+          \ 'Here: Require msgpack 1.0.0+ was not successful',
           \ 'Please install/upgrade msgpack 1.0.0+.')
   endif
 endfunction

~/.config/nvim/plugged/deoplete.nvim master* ⇣
λ git log
commit e652df7eaa3d024182f8e124e4f0dafe40ed3a29 (grafted, HEAD -> master)
Author: Shougo Matsushita <[email protected]>
Date:   Thu Mar 26 08:33:53 2020 +0900

    Improve changedtick

Result from Neovim's :checkhealth (notice modification present):

## deoplete.nvim
  - OK: exists("v:t_list") was successful
  - OK: has("timers") was successful
  - OK: has("python3") was successful
  - OK: Require Python 3.6.1+ was successful
  - ERROR: Here: Require msgpack 1.0.0+ was not successful
    - ADVICE:
      - Please install/upgrade msgpack 1.0.0+.

So, it seems like you still need to remove that check if it doesn't actually require 1.0.0+.

Ah, OK. deoplete now checks msgpack version in :checkhealth.
But it does not check otherwise.

So you can use deoplete in the older version with old msgpack.

Why the check exists?
Because I recommend for users to use the latest version of msgpack.

In older version, https://github.com/Shougo/deoplete.nvim/issues/1077#issue-571309115

The check existed in deoplete initialization.
So users needed to install msgpack latest version to use deoplete.
I have removed the check.

If the latest version of msgpack is not required, why even suggest it? Installing the latest version in Arch linux requires the workaround suggested by @e-kwsm, which is non-ideal.

Installing the latest version in Arch linux requires the workaround suggested by @e-kwsm, which is non-ideal.

This is Arch problem. It is not deoplete problem.
I need to add workaround for Arch in deoplete.

So you should ask to Arch maintainer why msgpack is not updated yet.

msgpack in Arch is not updated after one month+.
It is not normal update behavior in Arch(It should be updated one week later after released).

Note: I think the change is blocked to breaking change in msgpack 1.0.

In case it helps someone else my problem was it not using the correct python, had to make sure this was updated:
let g:python3_host_prog = '/Users/YOURUSERNAME/opt/miniconda3/bin/python'

python3 -mpip install --user -U msgpack should work. If not, I beleive it is python's import problem rather than deoplete's.

Wow this works for me! thanks!

Was this page helpful?
0 / 5 - 0 ratings

Related issues

tchia04 picture tchia04  Â·  3Comments

callmekohei picture callmekohei  Â·  4Comments

pr4th4m picture pr4th4m  Â·  4Comments

rafi picture rafi  Â·  4Comments

callmekohei picture callmekohei  Â·  5Comments