如何忽略笔记本上的 Pylance 类型检查?

Vin*_*e M 6 python visual-studio-code jupyter-notebook pylance

我有一个 python 项目,其中有 python 文件和笔记本。

我在项目中使用严格输入,但我只想在笔记本上删除它。我使用 VScode 进行设置:

"python.analysis.typeCheckingMode": "strict"
Run Code Online (Sandbox Code Playgroud)

我知道如何忽略 python 文件上的类型:

输入忽略 python 文件

但它似乎不适用于笔记本: 输入忽略笔记本

我收到以下类型错误:

““y”的类型部分未知”
“y”的类型为“未知 | 没有(皮兰斯)”

在此输入图像描述

如何忽略笔记本上的类型检查?

Gin*_*pin 8

这是皮兰斯的错误。

您可以在工作区的根目录下创建一个pyrightconfig.json文件,并将文件定义为exclude-d fromanalysis或完全ignore-d:

{
    "ignore": [
        "**/*.ipynb",
    ],
}
Run Code Online (Sandbox Code Playgroud)

您甚至可以列出特定的文件名:

{
    "ignore": [
        "notimportant.ipynb",
        "test.ipynb",
    ],
}
Run Code Online (Sandbox Code Playgroud)

历史注释:

它最初不适用于 Jupyter Notebooks ( .ipynb):
https ://github.com/microsoft/pylance-release/issues/2135

发生这种情况是因为 Pyright 没有将该文件视为“*.ipynb”。VS Code Python 扩展正在笔记本中对该文件进行预处理(以组合所有单元),然后将生成的组合文件传递给 Pyright 进行分析。

pylance 团队正在积极致力于改变其工作方式。我将把这个 bug 转移到 pylance-release 存储库,以便它得到应有的关注。

该 Github 问题已得到解决,该修复已作为pylance 2022.8.51的一部分部署: https://github.com/microsoft/pylance-release/blob/main/CHANGELOG.md#2022851-31-august-2022-prerelease

显着变化:

如果仍然无法正常工作,请检查 VS Code 上的 pylance 版本。