Плагин не распознает хост Python в Neovim, хотя Python отлично работает внутри

Я использую Neovim в Arch Linux с установленными python-neovim и python3-neovim для поддержки Python. До последнего обновления python-клиентов для neovim все работало хорошо. В частности, я использую плагин Unite, которому нужна поддержка Python.

После установки новой версии клиентов python для neovim поддержка Python, похоже, перестала работать.

echo g:loaded_python_provider

возвращает 1, а Unite выдает следующее исключение:

function <SNR>51_call_unite..unite#start..unite#start#standard..unite#init#_current_unite..remote#define#CommandBootstrap..remote#host#Require..<SNR>56_RequirePythonHost, line 15                                                             
Vim(if):Channel was closed by the client                                                                                                                                                                                                       
Error detected while processing function <SNR>51_call_unite..unite#start..unite#start#standard..unite#init#_current_unite..remote#define#CommandBootstrap..remote#host#Require..<SNR>56_RequirePythonHost:                                     
line   22:                                                                                                                                                                                                                                     
E605: Exception not caught: Failed to load python3 host. You can try to see what happened by starting Neovim with the environment variable $NVIM_PYTHON_LOG_FILE set to a file and opening the generated log file. Also, the host stderr will b
e available in Neovim log, so it may contain useful information. See also ~/.nvimlog.

Однако я понял, что python хорошо работает в neovim, попробовав

:python print "Hello"

а также

:python3 print("Hello")

Я также попытался вручную установить хост Python, используя python_host_prog. Однако это ничего не изменило.

ОБНОВИТЬ:

Тем временем сообщение об ошибке немного изменилось и содержит исключение python. Кроме того, я обнаружил, что на моей машине возникла проблема с обновлением пакетов, когда я обновил python3.4 до 3.5. Некоторые пакеты связаны. Они были неправильно связаны между двумя версиями. Nonethelles, полная переустановка neovim и api-bindings python тоже проблему не решила.

function <SNR>51_call_unite[33]..unite#start[1]..unite#start#standard[39]..unite#init#_current_unite[97]..remote#define#CommandBootstrap":                                                                          
 Zeile 5:                                                                                                                                                                                                                                    
 no request handler registered for "/home/cutuchiqueno/.vim/plugged/unite.vim/rplugin/python3/unite.py:command:UniteInitializePython"                                                                                                           
 Encountered ImportError loading plugin at /home/cutuchiqueno/.vim/plugged/unite.vim/rplugin/python3/unite.py: No module named 'unite'                                                                                                          
 Traceback (most recent call last):                                                                                                                                                                                                             
 File "/usr/lib/python3.5/site-packages/neovim/plugin/host.py", line 118, in _load                                                                                                                                                            
 file, pathname, descr = find_module(name, [directory])                                                                                                                                                                                     
 File "/usr/lib/python3.5/site-packages/neovim/compat.py", line 29, in find_module                                                                                                                                                            
 return original_find_module(fullname, path)                                                                                                                                                                                                
 File "/usr/lib/python3.5/imp.py", line 296, in find_module                                                                                                                                                                                   
 raise ImportError(_ERR_MSG.format(name), name=name)                                                                                                                                                                                        
 ImportError: No module named 'unite'

person Cutú Chiqueño    schedule 17.03.2016    source источник
comment
:python3 print "Hello" Это сработало? Это недействительный код Python 3.   -  person Håken Lid    schedule 14.05.2016
comment
Убедитесь, что у вас установлена ​​версия привязок neovim для python3.5. pip install neovim и правильно настроите путь python3 в вашем .vimrc let g:python3_host_prog = '/path/to/python3'   -  person Håken Lid    schedule 14.05.2016
comment
@ Håken Lid нет, вы совершенно правы, я сделал это правильно в тесте, но скопировал и вставил здесь неправильно. Я поправил в посте   -  person Cutú Chiqueño    schedule 14.05.2016
comment
@@ Håken Lid Итак, я добавил let g:python3_host_prog = '/path/to/python3' и let g:python_host_prog = '/path/to/python2' в свой init.vim, но в поведении нет изменений, сообщение об ошибке осталось прежним.   -  person Cutú Chiqueño    schedule 14.05.2016
comment
Может быть проблема с unite.vim. github.com/Shougo/unite.vim/issues/1150   -  person Håken Lid    schedule 14.05.2016
comment
Через несколько недель мне помог кто-то из Reddit / Neovim. Решение не ставит меня в позитивном свете, хотя я действительно не знал об этом (интересно, как я мог заставить его работать в первую очередь) См. Мой ответ.   -  person Cutú Chiqueño    schedule 14.05.2016


Ответы (1)


Проблему можно решить, позвонив :UpdateRemotePlugins. Эта команда необходима для создания специального файла манифеста, который необходим для связи между специальными плагинами и neovim из-за того, как neovim обрабатывает связь api (msgpack-rpc).

Обновление с python3.4 до python3.5 сделало старые файлы манифеста устаревшими. Следовательно, их тоже пришлось обновить.

person Cutú Chiqueño    schedule 14.05.2016