繁体   English   中英

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

[英]Vscode autocompletion doesn't work for Jupyter Notebook

我最近开始在 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"
}

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

对于你提到的“ print() ”和“ np.concatenate() ”,建议你使用“ Pylance ”扩展,它提供了优秀的语言服务和自动全功能。

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

"python.languageServer": "Pylance",

在此处输入图片说明

在此处输入图片说明

更新:

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

在此处输入图片说明

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

这对我有帮助,只需在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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM