现已发布!阅读十月发布的新功能和修复。

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

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

注意:Python 扩展的语言服务器默认情况下启用了语法错误检测。要了解如何配置语言服务器,请参阅 语言服务器设置。本文档介绍如何启用代码风格检查以进行额外的代码检测,包括风格检查。

选择代码风格检查工具

VS Code 市场 中搜索您选择的代码风格检查工具扩展。如果需要,您可以同时使用多个代码风格检查工具。

Microsoft 发布了以下 Python 代码风格检查工具扩展:

代码风格检查工具 扩展
Pylint https://marketplace.visualstudio.com/items?itemName=ms-python.pylint
flake8 https://marketplace.visualstudio.com/items?itemName=ms-python.flake8
mypy https://marketplace.visualstudio.com/items?itemName=ms-python.mypy-type-checker

社区提供的代码风格检查工具扩展

代码风格检查工具 扩展
Ruff https://marketplace.visualstudio.com/items?itemName=charliermarsh.ruff
mypy https://marketplace.visualstudio.com/items?itemName=matangover.mypy

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

一般设置

您可以参考每个代码风格检查工具扩展的 README 以了解有关支持设置的更多详细信息。以下设置受大多数代码风格检查工具扩展支持:

设置 默认值 描述
args [] 要传递给代码风格检查工具的参数。注意:官方支持的代码风格检查工具在单个打开的文件上运行。确保您的配置在这种情况下适用。
importStrategy useBundled 设置为 useBundled 时,扩展使用其附带的工具版本。设置为 fromEnvironment 时,它会尝试首先从您选择的 Python 环境中加载,否则会回退到捆绑版本。
path "" 要用于代码风格检查的代码风格检查工具二进制文件的路径。注意:使用此选项可能会减慢格式化速度。
interpreter [] 设置为 Python 可执行文件的路径时,扩展将使用它来启动代码风格检查服务器及其子进程。
showNotifications off 控制扩展显示通知的时间。支持的值为 offalwaysonErroronWarning

禁用代码风格检查

已安装的代码风格检查工具默认情况下处于启用状态。您可以通过 禁用扩展 来禁用它们,该操作对每个工作区有效。

运行代码风格检查

代码风格检查将在打开或保存 Python 文件时自动运行。

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

Linting messages in the editor and the Problems panel

代码操作

一些代码风格检查工具可能提供 代码操作,可以帮助解决报告的问题。您可以参考您喜欢的代码风格检查工具扩展下的 功能贡献 部分,了解它提供的代码操作。

日志记录

代码风格检查工具的日志在您从下拉菜单中选择 <代码风格检查工具名称> 时,可在 输出 面板(⇧⌘U(Windows Ctrl+Shift+U,Linux Ctrl+K Ctrl+H)中获取。

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

严重性

代码风格检查工具会报告一些预定义严重程度的问题。可以使用代码风格检查工具的 severity 设置更改此设置。参考每个代码风格检查工具扩展的 README 以了解有关支持值和严重程度级别的更多详细信息。

代码风格检查故障排除

问题 原因 解决方案
代码风格检查工具扩展未报告任何问题。 未为您的工作区选择 Python。 查看您正在使用的代码风格检查工具的日志,并检查它正在使用的 Python 环境的路径。如果没有选择 Python,请从命令面板中运行 Python:选择解释器 命令,并为您的工作区选择现有解释器。
显示“您有已弃用的代码风格检查或格式化设置”通知 如果您看到此通知,则意味着您在 VS Code 中有 python.lintingpython.formatting 等设置。Python 扩展不再支持这些设置,因为 代码风格检查和格式化支持已迁移到工具扩展. 通过打开命令面板(⇧⌘P(Windows、Linux Ctrl+Shift+P)并运行 首选项:打开用户设置(JSON) 命令来查找在 VS Code 中定义这些设置的位置。如果它们不在您的用户设置中,请运行 首选项:打开工作区设置(JSON) 命令。然后删除已弃用的设置。
注意:如果您使用的是 远程开发扩展包 中的任何扩展,您还可以通过运行 首选项:打开远程设置(JSON) 命令来检查远程设置。
即使安装了代码风格检查工具扩展,代码风格检查也不起作用。 代码风格检查可能由于多种原因而失败,例如使用不支持的 Python 版本,或代码风格检查工具配置不正确。检查代码风格检查工具扩展的输出通道以了解代码风格检查工具失败的原因(在命令面板中运行 输出:将焦点置于输出 命令,然后选择代码风格检查工具扩展通道)。

下一步

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