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

问题描述 投票:0回答:2

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

我在我的项目中使用严格的打字,但我只想在笔记本上删除它。我使用 VScode 并设置:

"python.analysis.typeCheckingMode": "strict"

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

但它似乎不适用于笔记本:

我收到以下类型错误:

““y”的类型部分未知
“y”的类型是“未知 | 无 (pylance)”

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

python visual-studio-code jupyter-notebook pylance
2个回答
8
投票

这是一个 Pylance 错误。

您可以在工作区的根目录创建一个 pyrightconfig.json 文件,并将文件定义为分析中的

exclude
-d 或完全
ignore
-d:

{
    "ignore": [
        "**/*.ipynb",
    ],
}

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

{
    "ignore": [
        "notimportant.ipynb",
        "test.ipynb",
    ],
}

历史注释:

它最初不适用于 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 版本。


0
投票

从 VSCode 1.88.1 + Pylance v2024.4.1 开始,Gino 的解决方案对我不起作用。

对我有用的是将以下内容添加到我的

pyproject.toml

[tool.pyright]
exclude = ["**/*ipynb"]
© www.soinside.com 2019 - 2024. All rights reserved.