我已经安装了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解释器。
因此,您应该执行以下任一操作:
- 出现提示时选择 python 解释器。
- 如果没有提示,请手动选择 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
为了解决类似的问题,我做了以下两个操作:
-
安装最新版本的绝地武士:
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\Localvim (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]
}
希望这有帮助~