在 Visual Studio Code 中对 Python 进行代码规范检查(Linting)
代码规范检查可以高亮显示 Python 源代码中的语义和风格问题,这通常可以帮助您识别和纠正细微的编程错误或可能导致错误的编码实践。例如,代码规范检查可以检测到未定义变量的使用、对未定义函数的调用、缺失的括号,甚至是更微妙的问题,例如尝试重新定义内置类型或函数。代码规范检查与格式化不同,因为代码规范检查会分析代码的运行方式并检测错误,而格式化只重新组织代码的显示方式。
注意:Python 扩展的语言服务器默认启用语法错误检测。要了解如何配置语言服务器,请参阅语言服务器设置。本文档介绍了如何为额外的代码检测(包括样式检查)启用代码规范检查。
选择一个代码规范检查工具(Linter)
在 VS Code Marketplace 中搜索您选择的代码规范检查工具扩展。如果您愿意,可以同时使用多个代码规范检查工具。
Microsoft 发布了以下用于 Python 的代码规范检查扩展
社区提供的代码规范检查工具扩展
| 代码规范检查工具 | 扩展 |
|---|---|
| Ruff | https://marketplace.visualstudio.com/items?itemName=charliermarsh.ruff |
| mypy | https://marketplace.visualstudio.com/items?itemName=matangover.mypy |
注意:如果在上表中或 Marketplace 中找不到您首选的代码规范检查工具,您可以通过扩展添加支持。您可以使用 Python 扩展模板将新的 Python 工具集成到 VS Code 中。
常规设置
您可以参考每个代码规范检查工具扩展的 README 以获取有关受支持设置的更多详细信息。大多数代码规范检查工具扩展都支持以下设置
| 设置 | 默认值 | 描述 |
|---|---|---|
| args | [] |
要传递给代码规范检查工具的参数。注意:官方支持的代码规范检查工具对单个打开的文件运行。请确保您的配置在这种情况下适用。 |
| importStrategy | useBundled |
当设置为 useBundled 时,扩展程序使用它附带的工具版本。当设置为 fromEnvironment 时,它会尝试首先从您选择的 Python 环境加载,否则会回退到捆绑的版本。 |
| path | "" |
用于代码规范检查的代码规范检查工具二进制文件的路径。注意:使用此选项可能会减慢格式化速度。 |
| interpreter | [] |
当设置为 Python 可执行文件的路径时,扩展程序将使用该路径启动代码规范检查服务器及其子进程。 |
| showNotifications | off |
控制扩展程序何时显示通知。支持的值包括 off、always、onError 和 onWarning。 |
禁用代码规范检查
如果已安装代码规范检查工具,则默认启用它们。您可以通过在工作区级别禁用扩展来禁用它们。
运行代码规范检查
打开或保存 Python 文件时,代码规范检查会自动运行。
错误和警告显示在打开文件的问题面板中(⇧⌘M (Windows, Linux Ctrl+Shift+M)),并且也会在代码编辑器中高亮显示。将鼠标悬停在带下划线的问题上会显示详细信息

代码操作
一些代码规范检查工具可能会提供 代码操作 来帮助解决报告的问题。您可以参考首选代码规范检查工具扩展下的 功能贡献部分,以了解它提供的代码操作。
日志记录
代码规范检查工具的日志可在输出面板中(⇧⌘U (Windows Ctrl+Shift+U, Linux Ctrl+K Ctrl+H))中找到,方法是从下拉菜单中选择 <linter name>。
您可以通过从命令面板(⇧⌘P (Windows, Linux Ctrl+Shift+P))运行 Developer: Set Log Level 命令来更改代码规范检查工具扩展的日志级别。从扩展日志组中选择扩展,然后选择所需的日志级别。
严重性
代码规范检查工具会报告具有某些预定义严重性的问题。这可以使用代码规范检查工具的 severity 设置进行更改。有关支持的值和严重性级别,请参阅每个代码规范检查工具扩展的 README。
代码规范检查故障排除
| 问题 | 原因 | 解决方案 |
|---|---|---|
| 代码规范检查工具扩展没有报告任何问题。 | 尚未为您的工作区选择任何 Python。 | 查看您正在使用的代码规范检查工具的日志,并检查它正在使用的 Python 环境的路径。如果没有选择 Python,请从命令面板运行 Python: Select Interpreter 命令,然后为您的工作区选择一个现有的解释器。 |
| 显示“您有已弃用的代码规范检查或格式化设置”通知 | 如果看到此通知,则意味着您的 VS Code 中存在 python.linting 或 python.formatting 等设置。Python 扩展不再支持这些设置,因为代码规范检查和格式化支持已迁移到工具扩展。 |
要查找这些设置在 VS Code 中的定义位置,请打开命令面板(⇧⌘P (Windows, Linux Ctrl+Shift+P))并运行 Preferences: Open User Settings (JSON) 命令。如果它们不在您的用户设置中,请运行 Preferences: Open Workspace Settings (JSON) 命令。然后删除已弃用的设置。 注意:如果您使用的是远程开发扩展包中的任何扩展,也可以通过运行 Preferences: Open Remote Settings (JSON) 命令来检查远程设置。 |
| 即使安装了代码规范检查工具扩展,代码规范检查也不起作用。 | 代码规范检查可能因各种原因失败,例如使用的 Python 版本不受支持,或者代码规范检查工具配置不正确。检查代码规范检查工具扩展的“输出”频道以了解代码规范检查工具失败的原因(在命令面板中运行 Output: Focus on Output 命令,然后选择代码规范检查工具扩展频道)。 |
后续步骤
- 格式化 - 了解如何格式化您的 Python 代码。
- 调试 - 了解如何在本地和远程调试 Python。
- 测试 - 配置测试环境以及发现、运行和调试测试。
- 基本编辑 - 了解功能强大的 VS Code 编辑器。
- Python 扩展模板 - 创建一个扩展以将您最喜欢的代码规范检查工具集成到 VS Code 中。