Настройка coc.nvim для python

Я установил coc.nvim и расширение coc-python(:CocInstall coc-python)

Когда я открыл файл, я отказался от линтинга, а затем получил ошибку:

[coc.nvim] Jedi error: Traceback (most recent call last):                                                                                                                File "completion.py", line 694, in <module>
[coc.nvim] Jedi error: Traceback (most recent call last):                                                                                                      
[coc.nvim] Jedi error:     import jedi
ModuleNotFoundError: No module named 'jedi'

Я пытался переустановить расширение и плагин, но это не помогло.

7 ответов

Рекомендуется использовать https://github.com/fannheyward/coc-pyright , если вы используете Python 3, или использовать https://github.com/pappasam/coc-jedi , если вы используете Jedi.

Похоже, у вас нет jediпакет, установленный для вашего интерпретатора Python. Я ожидаю, что это сработает после запуска (в вашей командной строке)

      pip3 install jedi

Я также только что увидел, что я установил pynvimpackage в моей среде Python, но я не помню, нужно ли вам это.

Когда я начал редактировать файл .py, появилось какое-то уведомление, но из-за того, что я печатал, уведомление было пропущено, а затем оно показало мне [coc.nvim] Jedi error: import Jedi.

Оказывается, в уведомлении меня попросили выбрать интерпретатор python (у меня было два интерпретатора: один от anaconda, а второй от python.org). Пока я устанавливал Jedi в интерпретатор python.org, я не устанавливал Jedi в интерпретатор python anaconda и не выбирал, какой интерпретатор python использовать.

Итак, вы должны сделать либо:

  1. При появлении запроса выберите интерпретатор Python.
  2. Если подсказки нет, выберите интерпретатор Python вручную:

:CocCommand python.setInterpreter "C:\Users\username\AppData\Local\Programs\Python\PythonVersion\python.EXE"
или же
:CocCommand python.setInterpreter "/usr/bin/python3"

И не забудьте установить Jedi: pip install jedi

YMMV, но я обошел эту точную ошибку, добавив ее в свой:CocConfig "python.jediEnabled": false

Чтобы решить аналогичную проблему, я сделал два следующих действия:

  1. Установите последнюю версию jedi:

    pip install jedi --upgrade

  2. Установите интерпретатор Coc Python на версию Python, которую я использую (и для которой установлен jedi)

    В C:\Users\myuser.vim\Coc-Settings.json убедитесь, что присутствует следующая строка

    "python.pythonPath" : "C:\\Python36_x64",

    Где «C:\Python36_x64» — это путь к моему интерпретатору Python.

Примечание. Файл Coc-Settings.json находится не в C:\Users\myuser\vimfiles (gVim) и не в C:\Users\myuser\AppData\Local\nvim (NeoVim), как вы могли бы подумать с помощью команды :CocConfig. является.

Один из способов сделать это — добавить «python.pythonPath»: «python3» в ваш файл coc-settings.json.

Если вы похожи на меня и используете много виртуальных окружений python или conda env, сделайте следующее:

  1. Отключить джедая
      $ vim ~/.config/coc/extensions/node_modules/coc-python/package.json
"python.jediEnabled": false,
  1. Установить подписку на вас :CocConfigрешить проблему отсутствия переводчика.
      "python", {
\   'jediEnabled': v:false,
\   'pythonPath': split(execute('!which python'), '\n')[-1]
\ }

Надеюсь, это поможет ~

Может быть, это ответ на гитхабе:

https://github.com/neoclide/coc-python/issues/193

Другие вопросы по тегам