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

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

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

选择代码检查工具 (Linter)

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

Microsoft 为 Python 发布了以下 Lint 检查扩展

检查工具 扩展
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

社区提供的 Lint 检查扩展

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

注意:如果你在上述表格或市场中没有找到你偏好的检查工具,你可以通过扩展来添加对它的支持。你可以使用 Python 扩展模板 将新的 Python 工具集成到 VS Code 中。

常规设置

有关支持的设置的更多详细信息,请参阅每个 Lint 检查工具扩展的 README。大多数 Lint 检查扩展支持以下设置

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

禁用 Lint 检查

Lint 检查工具如果已安装,则默认启用。你可以通过针对特定工作区禁用该扩展来禁用它们。

运行 Lint 检查

当打开或保存 Python 文件时,将自动运行 Lint 检查。

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

Linting messages in the editor and the Problems panel

代码操作

某些检查工具可能提供代码操作 (Code Actions),这有助于解决报告的问题。你可以参考所选检查工具扩展下的功能贡献部分,了解它提供了哪些代码操作。

日志记录

当你从下拉菜单中选择 <linter name> 时,检查工具的日志可在输出面板(⇧⌘U (Windows Ctrl+Shift+U, Linux Ctrl+K Ctrl+H))中查看。

你可以通过从命令面板(⇧⌘P (Windows, Linux Ctrl+Shift+P))运行 Developer: Set Log Level 命令来更改检查工具扩展的日志级别。从 Extension Logs 组中选择该扩展,然后选择所需的日志级别。

严重性

检查工具以某种预定义的严重性报告问题。这可以使用检查工具的 severity 设置进行更改。有关支持的值和严重性级别的更多详细信息,请参阅每个检查工具扩展的 README。

Lint 检查故障排除

问题 原因 解决方案
Lint 检查扩展未报告任何问题。 尚未为你的工作区选择 Python 环境。 查看你正在使用的检查工具的日志,并检查它正在使用的 Python 环境的路径。如果没有选择 Python,请从命令面板运行 Python: Select Interpreter 命令,并为你的工作区选择一个现有的解释器。你也可以在状态栏中选择 Python 版本来选择解释器。
显示“你有已弃用的 Lint 检查或格式化设置”通知 如果你看到此通知,则意味着你在 VS Code 中有诸如 python.lintingpython.formatting 之类的设置。Python 扩展不再支持这些设置,因为Lint 检查和格式化支持已迁移到工具扩展中 通过打开命令面板(⇧⌘P (Windows, Linux Ctrl+Shift+P))并运行 Preferences: Open User Settings (JSON) 命令,找到这些设置在 VS Code 中的定义位置。如果它们不在你的用户设置中,则运行 Preferences: Open Workspace Settings (JSON) 命令。然后删除这些已弃用的设置。
注意:如果你正在使用 远程开发扩展包 (Remote Development extension pack) 中的任何扩展,你还可以通过运行 Preferences: Open Remote Settings (JSON) 命令来检查远程设置。
即使我已经安装了检查工具扩展,Lint 检查也不起作用。 Lint 检查可能会因各种原因失败,例如使用了不支持的 Python 版本,或者检查工具配置不正确。查看检查工具扩展的“输出”通道以了解检查工具失败的原因(在命令面板中运行 Output: Focus on Output 命令,然后选择对应的检查工具扩展通道)。

后续步骤

  • 格式化 - 了解如何格式化 Python 代码。
  • 调试 - 了解如何在本地和远程调试 Python。
  • 测试 - 配置测试环境以及发现、运行和调试测试。
  • 基本编辑 - 了解功能强大的 VS Code 编辑器。
  • Python 扩展模板 - 创建一个扩展,将你最喜欢的检查工具集成到 VS Code 中。
© . This site is unofficial and not affiliated with Microsoft.