Vscode 自动完成功能不适用于 Jupyter Notebook

aar*_*s12 10 python autocomplete visual-studio-code jupyter-notebook vscode-settings

我最近开始在 vscode 上使用 Jupyter Notebooks,但我注意到代码自动完成无法正常工作。

如果我创建一个常规的 .py 文件,一切正常,如您所见。它显示了函数签名和文档字符串。在核心 python 语言和 extern 模块中。

正确的自动完成核心

正确的自动完成外部

但是如果我在 .ipynb 文件中尝试相同的方法,它会完全忽略 print() 的自动完成

错误的自动完成

如果例如它向我显示 np.sum() 文档字符串但它没有向我显示任何其他 np.functions 或其他模块中的任何 np.concatenate() 信息,那么我也感到困惑

[自动完成 np.sum4

自动完成 np.concatenate

以防万一我使用 Vscode 和 conda 环境作为我的 python 解释器。这是我的 settings.json 文件:

{
"python.dataScience.jupyterServerURI": "local",
"python.pythonPath": "C:\\Users\\myUser\\anaconda3\\envs\\myEnv\\python.exe"
}
Run Code Online (Sandbox Code Playgroud)

Jil*_*eng 14

根据您的描述,出现这种情况的原因是不同语言服务提供的自动补全、提示等功能不同。

对于您提到的“ print()”和“ np.concatenate()”,建议您使用“ Pylance ”扩展,它提供了出色的语言服务和自动完成功能。

请在 中添加以下设置settings.json

"python.languageServer": "Pylance",
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

在此处输入图片说明

更新:

从 2020 年 11 月开始,VSCode 中 Jupyter notebook 的功能由扩展“Jupyter”提供,它使用扩展“Jupyter”提供的“IntelliSense”。而在“VSCode-insider”中,Jupyter notebook 有更好的“IntelliSense”:

在此处输入图片说明

Github 链接:Hover 文档弹出窗口在 VSCode 1.52 更新后不起作用