Setting up coc.nvim for python



我已经安装了coc.nvim和扩展coc-python(:CocInstall coc-python(

当我打开文件时,我拒绝了linting,然后出现错误:

[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'

我试图重新安装扩展和插件,但它没有帮助。

如果您使用的是 Python 3,建议使用 https://github.com/fannheyward/coc-pyright,如果您使用的是 Jedi,建议使用 https://github.com/pappasam/coc-jedi。

看起来您没有为 python 解释器安装jedi包。我希望它在你运行后工作(在你的命令行中(

pip3 install jedi

我也刚刚看到我也在我的 python 环境中安装了pynvim包,但我不记得你是否需要这个。

当我开始编辑.py文件时,有一些通知,但由于我正在输入通知被跳过,然后它向我显示[coc.nvim] Jedi error: import Jedi

事实证明,通知要求我选择一个 python 解释器(我有两个解释器:一个来自 anaconda,第二个来自 python.org(。虽然我将Jedi安装到"python.org"解释器中,但我没有将Jedi安装到anaconda的python解释器中,也没有选择使用哪个python解释器。

因此,您应该执行以下任一操作:

  1. 出现提示时选择 python 解释器。
  2. 如果没有提示,请手动选择 python 解释器:

:CocCommand python.setInterpreter "C:UsersusernameAppDataLocalProgramsPythonPythonVersionpython.EXE"

:CocCommand python.setInterpreter "/usr/bin/python3"

不要忘记实际安装绝地武士:pip install jedi

YMMV,但我通过将其添加到我的 :CocConfig"python.jediEnabled": false中来克服这个确切的错误

也许这是 github 上的答案:

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

为了解决类似的问题,我做了以下两个操作:

  1. 安装最新版本的绝地武士:

    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\Localvim (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]
 }

希望这有帮助~

最新更新