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

标签 python visual-studio-code autocomplete jupyter-notebook vscode-settings

我最近开始在 vscode 上使用 Jupyter Notebooks,但我注意到代码自动完成功能无法正常工作。
如果我创建一个常规的 .py 文件,如您所见,一切正常。它显示函数签名和文档字符串。在核心 python 语言和外部模块中。
correct autocompletion core
correct autocompletion extern
但是,如果我在 .ipynb 文件中尝试相同的操作,它会完全忽略 print() 的自动完成
incorrect autocompletion
如果它向我显示 np.sum() 文档字符串但它没有向我显示任何其他 np.functions 或其他模块中的任何 np.concatenate() 信息,那也会让我感到困惑
[ autocomplete np.sum4
autocomplete np.concatenate
以防我使用 Vscode 和 conda 环境作为我的 python 解释器。
这是我的 settings.json 文件:

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

最佳答案

根据您的描述,出现这种情况的原因是不同语言服务提供的自动补全、提示等功能不同。
对于您提到的“print()”和“np.concatenate()”,建议您使用“Pylance”扩展,它提供了出色的语言服务和自动补全功能。
请在 settings.json 中添加以下设置:

"python.languageServer": "Pylance",
enter image description here
enter image description here
更新:
从 2020 年 11 月开始,VSCode 中 Jupyter notebook 的功能由扩展“Jupyter”提供,它使用了扩展“Jupyter”提供的“IntelliSense”。
而在“VSCode-insider”中,Jupyter notebook 有更好的“IntelliSense”:
enter image description here
Github链接:Hover Documentation Pop up does not work after VSCode 1.52 update .

关于python - Vscode 自动完成功能不适用于 Jupyter Notebook,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64680361/

相关文章:

django - PyCharm 和 Django 的请求对象自动完成

python - 写入 csv 中的多列

python - 使用@patch 装饰器模拟属性

python - Python中 block 之前的冒号的目的是什么?

visual-studio-code - Visual Studio Code 中是否有 'select between tags' 快捷方式?

.net - 自动完成查找字符串包含的符号而不是开头的符号

jquery - 增加自动完成滚动条的大小

php - 通过php将参数传递给python脚本

json - 取消 vscode 警告 `Incorrect type. Expected "数组"`

html - 更改 Visual Studio Code 中匹配标签的文本装饰样式