You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在VSCode中以仅检查模式运行black和isort工具?

实现VSCode中把black/isort作为linter使用的方法

这个需求完全可以实现,下面提供两种可落地的配置方案:

方案1:通过Ruff实现(推荐,配置成本最低)

Ruff原生兼容black格式化规则、isort导入排序规则,开箱即可作为linter输出不符合规范的代码位置,不需要复杂适配:

  • 先安装VSCode的Ruff扩展,同时在本地Python环境安装ruff依赖:pip install ruff
  • 在项目根目录新建.ruff.toml配置文件,添加如下内容即可启用black+isort规范检查:
[lint]
# 启用isort导入排序规则,其他lint规则可按需添加
select = ["I"]
# 启用black格式化兼容规则
extend-select = ["B"]

[format]
# 对齐最新版black的格式化规则
preview = true

配置完成后,所有不符合isort、black规范的代码都会直接在VSCode的「问题」面板中标注出对应位置,你可以按需手动触发格式化修复,不需要保存时自动修改文件。

方案2:原生black/isort自定义配置

如果你不想引入Ruff,要直接用原生black/isort的--check/--check-only能力,可以通过配置VSCode自定义任务+问题匹配器实现:

  1. 先在本地Python环境安装black和isort:pip install black isort
  2. 在VSCode当前工作区的.vscode/tasks.json文件中添加如下配置(如果没有该文件可以手动新建):
{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "black规范检查",
      "type": "shell",
      "command": "black",
      "args": ["--check", "${file}"],
      "problemMatcher": {
        "owner": "black",
        "fileLocation": "absolute",
        "pattern": [
          {
            "regexp": "^would reformat (.*)$",
            "file": 1,
            "message": "代码不符合black格式化规范"
          }
        ]
      }
    },
    {
      "label": "isort导入检查",
      "type": "shell",
      "command": "isort",
      "args": ["--check-only", "${file}"],
      "problemMatcher": {
        "owner": "isort",
        "fileLocation": "absolute",
        "pattern": [
          {
            "regexp": "^ERROR: (.*) Imports are incorrectly sorted and/or formatted.$",
            "file": 1,
            "message": "导入排序不符合isort规范"
          }
        ]
      }
    }
  ]
}
  1. 你可以自行设置快捷键触发这两个检查任务,也可以配置为文件保存时自动运行,整个过程不会修改文件内容,只会输出不符合规范的提示。

如果你已经安装了官方的Black Formatter、isort扩展,不需要卸载,只需要关闭「保存时自动格式化」的全局或项目级配置,搭配上述方案即可实现你需要的「先检查后手动修复」的使用流程。

内容的提问来源于stack exchange,提问作者keisuke

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 05:24:04