Visual Studio代码> Python>黑色格式无法在保存时运行

时间:2019-07-15 12:23:01

标签: python visual-studio-code ide code-formatting

尽管我似乎已经正确配置了linitng和formatting,但是lint运行了,但是black formatting没有运行。

    "python.linting.flake8Enabled": true,
    "python.linting.flake8Args": [
        "--max-line-length=110"
    ],
    "python.linting.lintOnSave": true,
    "python.formatting.provider": "black",
    "python.formatting.blackPath": "/usr/local/bin/black",
    "python.formatting.blackArgs": [
        "--line-length",
        "110"
    ],
    "editor.formatOnSave": true,

我已经检查了黑色的配置是否正确,并且可以从命令行运行格式设置而没有问题。

但是当保存在IDE中时,黑色不会格式化文件。它还没有抱怨,没有错误消息弹出,并且日志中什么也没有显示。它只是根本不运行格式化。

我正在使用远程编辑来运行此docker-container:不确定,是否有所不同。

黑色版本是:

black>=19.3b0

vscode版本为1.36.1

谢谢您的帮助,就目前而言,我还是很头绪,为什么黑色格式无法运行...

4 个答案:

答案 0 :(得分:4)

迟到的答案,以防它对任何人有帮助。我遇到了同样的问题并解决了如下

我需要在用户 settings.json 中有这一行

"editor.defaultFormatter": "ms-python.python"

否则,我猜,格式会被我的默认格式选项覆盖

"editor.defaultFormatter": "esbenp.prettier-vscode",

所以我对格式化相关内容的整体设置如下

"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.formatOnSave": true,
  "[python]": {
    "editor.formatOnSave": true,
    "editor.defaultFormatter": "ms-python.python"
  },
  "[javascript]": {
    "editor.formatOnSave": true,
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },

  "python.formatting.provider": "black",
  "python.formatting.blackPath": "/home/<user>/anaconda3/bin/black",

这行 "editor.defaultFormatter": "ms-python.python" 也可以从 VS-Code 命令面板(Ctrl + shift + P)激活,如下所示。

格式化文档 > 配置默认格式化程序 > 选择 Python

答案 1 :(得分:3)

黑色的line参数是错误的,应该是

--line-length=120

根据https://stackoverflow.com/a/58048911/4435175

答案 2 :(得分:1)

根据此PR,具有为formatOnSave操作设置超时的功能。默认情况下,这是750毫秒,对于我的项目来说,这太短了。通过在settings.json中使用它,我将其增加到3秒:

{
    "editor.formatOnSaveTimeout": 3000
}

答案 3 :(得分:0)

但是这是一个疯狂的猜测:我使用sudo从命令行手动启动了dockerd:这给了我各种奇怪的问题(从容器内部创建的文件,例如,迁移或缓存文件最终归root拥有)我最近将dockerd移到了服务中,现在突然黑了就在运行中。所有邪恶的根源可能是权利发行,这是因为dockerd是作为sudo而不是作为服务运行的。 >