Ошибка после установки YouCompleteMe: невозможно импортировать имя _compare_digest

Я пытаюсь установить плагин YouCompleteMe на экземпляр Vim, скомпилированный из исходного кода. У меня есть сервер без привилегий sudo, поэтому мне пришлось скомпилировать новый Vim (7.4+), чтобы заставить работать большинство плагинов. Кроме того, я установил miniconda и поэтому ссылаюсь на python в miniconda для всех установок.

Выполняя все шаги по установке плагина YouCompleteMe (через Vundle или даже вручную), я столкнулся с этой проблемой: «Не удается найти модуль urllib3». Поэтому я установил urllib3 через pip, а затем ошибка изменилась на «невозможно импортировать имя _compare_digest». Обратите внимание, что conda virtualenv (я только что сделал корзину miniconda в $ PATH) не может запуститься, и он по-прежнему показывает «Не удается найти модуль urllib3» даже после его явной установки.

Что-то не так с тем, как я установил vim? Я был особенно осторожен, указывая на miniconda python везде, где это необходимо. Как решить эту проблему и снова запустить плагин?


person Koustuv Sinha    schedule 28.09.2016    source источник


Ответы (2)


Когда у меня возникли проблемы с зависимостями, мне пришлось запустить

git submodule update --init --recursive

в каталоге YouCompleteMe, чтобы установить зависимости.

Также убедитесь, что вы выполнили все остальные шаги здесь:

https://valloric.github.io/YouCompleteMe/#full-installation-guide

Один из этих шагов может решить проблему.

person Ben Vassmer    schedule 18.10.2016

Кратко

Просто перейдите к субмодулю ycmd внутри папки YouCompleteMe, или, если быть точным, в YouCompleteMe/third_party/ycmd и запустите команду субмодуля git ниже.

git submodule update --init --recursive

Расшифровка

У меня та же проблема, что и у вас. Она была вызвана тем, что подмодуль YouCompleteMe не клонировался должным образом.

Эта команда должна решить проблему.

git submodule update --init --recursive

Но, к сожалению, проблема все еще сохраняется, проблема, при которой urllib3 not found , и установка библиотеки с использованием pip не смогут решить эту проблему.

Проблема на самом деле находилась в ycmd подмодуле, в котором нуждался urllib3 или, если быть более точным, requests подмодуль ycmd нуждался в этом.

После некоторых экспериментов основная проблема заключалась в том, что команда git submodule не могла правильно клонировать подмодуль, при этом возникала ошибка о том, что модуль не найден.

Надеюсь, это может быть полезно для вас :)

person nanangarsyad    schedule 09.09.2017