14

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

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

正确的自动完成核心

正确的自动完成外部

但是,如果我在 .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"
}
4

2 回答 2

17

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

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

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

"python.languageServer": "Pylance",

在此处输入图像描述

在此处输入图像描述

更新:

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

在此处输入图像描述

Github 链接:Hover Documentation Pop up 在 VSCode 1.52 更新后不起作用

于 2020-11-05T02:19:55.830 回答
1

这对我来说有帮助,只需添加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

于 2021-03-01T13:48:53.283 回答