本站点文档内容均翻译自code.visualstudio.com,仅供个人学习,如有差异请以官网为准。

在Visual Studio Code中进行Python代码检查

代码检查可以突出显示Python源代码中的语义和风格问题,这通常有助于您识别和纠正可能导致错误的微妙编程错误或编码实践。例如,代码检查可以检测未定义变量的使用、未定义函数的调用、缺少括号,甚至尝试重新定义内置类型或函数等更微妙的问题。代码检查与格式化不同,因为代码检查分析代码的运行方式并检测错误,而格式化仅重新结构化代码的外观。

注意:Python 扩展的 Language Server 默认启用语法错误检测。要了解如何配置 Language Server,请参阅 Language Server 设置。此文档涵盖如何启用额外的代码检测(包括风格检查)。

选择一个检查器

搜索VS Code 市场中您选择的代码检查扩展。如果您愿意,可以同时使用多个代码检查器。

微软发布了以下用于Python的代码检查扩展:

代码检查工具 扩展
皮林特 https://marketplace.visualstudio.com/items?itemName=ms-python.pylint
flake8 https://marketplace.visualstudio.com/items?itemName=ms-python.flake8
我的类型检查工具 https://marketplace.visualstudio.com/items?itemName=ms-python.mypy-type-checker

社区提供的代码检查扩展:

代码检查工具 扩展
拉夫 https://marketplace.visualstudio.com/items?itemName=charliermarsh.ruff
我的类型检查工具 https://marketplace.visualstudio.com/items?itemName=matangover.mypy

注意:如果您在上面的表格或市场中找不到您喜欢的检查器,您可以借助扩展来添加对它的支持。您可以使用Python 扩展模板将新的 Python 工具集成到 VS Code 中。

常规设置

您可以参考每个 linter 扩展的 README 以获取有关支持的设置的更多详细信息。以下设置由大多数 linter 扩展支持:

设置 默认 描述
参数 [] 传递给代码检查器的参数。注意:官方支持的代码检查器在单独打开的文件上运行。请确保您的配置在这种情况下适用。
导入策略 使用捆绑 当设置为使用捆绑该扩展使用的是它自带的工具版本。当设置为来自环境它首先尝试从您选择的Python环境中加载,否则会回退到捆绑版本。
路径 " 用于代码检查的二进制文件的路径。注意: 使用此选项可能会减慢格式化速度。
解释器 [] 当设置为Python可执行文件的路径时,该扩展将使用该路径启动代码检查服务器及其子进程。
显示通知 控制扩展何时显示通知。支持的值是总是错误处理,和onWarning输入:.

禁用代码检查

如果安装了,代码检查工具默认是启用的。你可以通过禁用扩展来禁用它们,针对每个工作区。

运行代码检查

当打开或保存Python文件时, linting 会自动运行。

错误和警告显示在问题面板(⇧⌘M(Windows, Linux Ctrl+Shift+M)中打开的文件,并且在代码编辑器中也会突出显示。悬停在下划线问题上会显示详细信息:

编辑器和问题面板中的 linting 消息

代码操作

一些静态代码分析工具可能提供代码行动,这些行动可以帮助解决报告的问题。您可以参考您首选的静态代码分析工具扩展下的功能贡献部分,以了解它提供了哪些代码行动。

日志记录

代码检查器的日志可在输出面板中(⇧⌘U (Windows Ctrl+Shift+U, Linux Ctrl+K Ctrl+H)) 当你选择<代码检查器名称>从下拉菜单中。

您可以通过在命令面板中运行 开发者:设置日志级别 命令来更改 linter 扩展的日志级别(⇧⌘P(Windows, Linux Ctrl+Shift+P)。从 扩展日志 组中选择扩展,然后选择所需的日志级别。

严重性

Linters报告具有某些预定义严重性的问题。这可以通过使用来更改严重性代码检查器的设置。有关受支持的值和严重级别,请参阅每个代码检查器扩展的README文件。

故障排除 linting

问题 原因 解决方案
代码检查扩展没有报告任何问题。 没有为你的工作区选择 Python。 查看你正在使用的代码检查器的日志,并检查它使用的Python环境路径。如果没有选择Python,请从命令面板中运行Python: 选择解释器命令,并选择工作区中现有的解释器。你也可以在状态栏中选择Python版本来选择解释器。
显示“您已弃用 linting 或格式化设置”的通知 如果您看到此通知,这意味着您的设置为python.静态代码分析python.格式化在 VS Code 中。这些设置不再被 Python 扩展支持,因为 代码检查和格式化支持已迁移到工具扩展 通过打开命令面板(⇧⌘P(Windows, Linux Ctrl+Shift+P)并运行偏好设置:打开用户设置(JSON)命令来查找这些设置在 VS Code 中的定义位置。如果它们不在你的用户设置中,那么运行偏好设置:打开工作区设置(JSON)命令。然后删除过时的设置。
注意:如果你正在使用 远程开发扩展包 中的任何扩展,你还可以通过运行偏好设置:打开远程设置(JSON)命令来检查远程设置。
即使我安装了 linting 扩展, linting 也不工作。 代码检查可能会因不同的原因失败,例如使用了不支持的Python版本,或者代码检查器没有正确配置。检查代码检查器扩展的输出通道以了解代码检查器失败的原因(在命令面板中运行输出:聚焦输出命令,并选择代码检查器扩展通道)。

下一步

  • 格式化 - 了解如何格式化您的Python代码。
  • 调试 - 学习如何在本地和远程调试Python。
  • 测试 - 配置测试环境并发现、运行和调试测试。
  • 基本编辑 - 了解强大的 VS Code 编辑器。
  • Python 扩展模板 - 创建一个扩展以将您喜欢的 linter 集成到 VS Code 中。