neovim: нет модуля с именем __future__ - PullRequest
0 голосов
/ 18 мая 2018

Когда я пытаюсь открыть определенные файлы python в neovim, я получаю сообщение об ошибке:

"pool.py" 667L, 25276C
function provider#python#Call[9]..remote#host#Require[10]..provider#pythonx#Require, line 15
Vim(if):ch 1 was closed by the client
Traceback (most recent call last):
  File "/home/user/.pyenv/versions/neovim2/lib/python2.7/site.py", line 67, in <module>
    import os
  File "./os.py", line 44, in <module>
    from __future__ import absolute_import
ImportError: No module named __future__
Failed to load python host. You can try to see what happened by starting nvim with $NVIM_PYTHON_LOG_FILE set and opening the generated log file. Also
, the host stderr is available in messages.
Press ENTER or type command to continue

Это происходит каждый раз, когда я открываю файл python в каталоге, который содержит os.py или os.pycфайл.Похоже, что neovim пытается импортировать локальный файл os.py вместо файла в virtualenv.

Что я могу сделать с этим?

РЕДАКТИРОВАТЬ: оказывается, это не когда я открываюфайл в том же каталоге, что и файл os.py, это когда я открываю файл где угодно, в то время как текущий рабочий каталог имеет файл os.py.По сути, похоже, что python проверяет локальный каталог на предмет импорта перед проверкой библиотек python.

1 Ответ

0 голосов
/ 18 мая 2018

Я понял это.Проблема была с моим $PYTHONPATH.В моем .bashrc файле было следующее:

export PYTHONPATH="$PYTHONPATH:~/.local/lib/python"

Проблема заключалась в том, что при выполнении этой строки $PYTHONPATH пусто, что приводит к строке, начинающейся с :.Я не уверен на 100%, почему, но это привело к тому, что python проверяет локальный каталог на наличие модуля ДО проверки библиотек python.

Я изменил его на

if [ -z "$PYTHONPATH" ]; then
  export PYTHONPATH="~/.local/lib/python"
else
  export PYTHONPATH="$PYTHONPATH:~/.local/lib/python"
fi

И теперь он работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...