在 VS Code 中试用

在 Visual Studio Code 中对 Python 进行代码检查 (Linting)

代码检查 (Linting) 会高亮显示 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 中。