Vscode 自动补全不适用于 Jupyter Notebook

Vscode autocompletion doesn't work for Jupyter Notebook

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

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

但是如果我在 .ipynb 文件中尝试相同的操作,它会完全忽略 print()

的自动完成

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

[

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

{
"python.dataScience.jupyterServerURI": "local",
"python.pythonPath": "C:\Users\myUser\anaconda3\envs\myEnv\python.exe"
}

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

对于您提到的“print()”和“np.concatenate()”,建议您使用“Pylance”扩展,它提供了优秀的语言服务和auto-complete 函数。

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

"python.languageServer": "Pylance",

更新:

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

Github link: Hover Documentation Pop up does not work after VSCode 1.52 update.

这对我的情况有所帮助,只需在 settings.json 中添加以下内容:

对于Windows

"python.autoComplete.extraPaths": [
    "C:\Users\<user_name>\AppData\Local\Programs\Python\Python38\python.exe"
    ],

对于Linux

"python.autoComplete.extraPaths": [
    "/usr/bin/python3"
    ],

更多信息:

https://code.visualstudio.com/docs/python/editing

如需其他提示,请访问:

https://code.visualstudio.com/docs/python/jupyter-support