Настройка 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
Я также только что увидел, что я установил
pynvim
package в моей среде Python, но я не помню, нужно ли вам это.
Когда я начал редактировать файл .py, появилось какое-то уведомление, но из-за того, что я печатал, уведомление было пропущено, а затем оно показало мне
[coc.nvim] Jedi error: import Jedi
.
Оказывается, в уведомлении меня попросили выбрать интерпретатор python (у меня было два интерпретатора: один от anaconda, а второй от python.org). Пока я устанавливал Jedi в интерпретатор python.org, я не устанавливал Jedi в интерпретатор python anaconda и не выбирал, какой интерпретатор python использовать.
Итак, вы должны сделать либо:
- При появлении запроса выберите интерпретатор Python.
- Если подсказки нет, выберите интерпретатор 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
Чтобы решить аналогичную проблему, я сделал два следующих действия:
Установите последнюю версию jedi:
pip install jedi --upgrade
Установите интерпретатор 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, сделайте следующее:
- Отключить джедая
$ vim ~/.config/coc/extensions/node_modules/coc-python/package.json
"python.jediEnabled": false,
- Установить подписку на вас
:CocConfig
решить проблему отсутствия переводчика.
"python", {
\ 'jediEnabled': v:false,
\ 'pythonPath': split(execute('!which python'), '\n')[-1]
\ }
Надеюсь, это поможет ~
Может быть, это ответ на гитхабе: