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

VSCode(WSL Ubuntu22.04)配置task用black格式化全目录ipynb文件

解决WSL下VSCode用black命令行格式化所有ipynb文件的tasks.json配置

核心问题是Windows路径与WSL路径的转换,直接用wslpath转换时要注意参数和执行环境,以下是可适配所有层级ipynb文件的tasks.json配置:

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "black format ipynb",
            "type": "shell",
            "command": "wsl",
            "args": [
                "black",
                "--ipynb",
                "$(wslpath -u \"${workspaceFolder}\")/$(wslpath -u \"${relativeFile}\")"
            ],
            "problemMatcher": [],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "presentation": {
                "echo": true,
                "reveal": "always",
                "focus": false,
                "panel": "shared",
                "showReuseMessage": true,
                "clear": false
            }
        }
    ]
}

配置说明:

  • wsl命令:直接调用WSL环境执行后续的black命令,确保路径转换和命令执行都在Ubuntu-22.04环境中进行
  • wslpath -u参数:-u表示将Windows路径转换为WSL的Unix风格路径,分别转换工作区根目录和当前文件的相对路径,拼接后得到WSL中可识别的完整文件路径
  • --ipynb参数:让black支持Jupyter Notebook文件的格式化
  • problemMatcher: []:禁用问题匹配,避免VSCode因black的输出格式报错
  • group设置:将任务设为默认构建任务,方便通过快捷键触发

注意事项:

  • 确保WSL的Ubuntu-22.04环境中已安装支持ipynb的black:pip install black[jupyter]
  • 若要将该任务设为默认格式化任务,可在VSCode的settings.json中添加:
    "[jupyter-notebook]": {
        "editor.defaultFormatter": "vscode.tasks"
    }
    
  • 也可通过快捷键绑定触发任务,比如在keybindings.json中添加:
    {
        "key": "ctrl+shift+i",
        "command": "workbench.action.tasks.runTask",
        "args": "black format ipynb"
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 21:13:22