【问题标题】:VS Code Python + Black formatter arguments - python.formatting.blackArgsVS Code Python + 黑色格式化程序参数 - python.formatting.blackArgs
【发布时间】:2018-11-16 11:07:17
【问题描述】:

我在 Windows 上使用 VS Code 1.23.1 的 2018 年 5 月 Python 扩展(2018 年 6 月发布),通过 Anaconda 使用 python 3.6,conda 从 conda-forge 将 black 安装到我的 conda 环境中。

在我的用户 settings.json 中,我有以下内容:

"python.formatting.blackArgs": [
    "--line-length 80"
],

我认为 认为 将是构建它以在 VS Code Python 格式中将参数传递给黑色的正确方法。

但是,在我的 python 输出窗格中,我得到以下信息:

Formatting with black failed.
Error: Error: no such option: --line-length 80

编辑:如果我将我的 settings.json 编辑为没有参数,例如:

"python.formatting.blackArgs": [],

黑色按预期工作。

有谁知道如何将参数正确传递给新的(截至 2018 年 6 月)黑色格式化程序?

【问题讨论】:

  • 你需要 "--line-length=80" 而不是 "--line-length 80" 请注意等号。
  • 谢谢@Mark!为此,看起来接受的答案已被编辑以匹配当前 VS Code 设置的操作方式。看起来感谢@He3lixxx 帮助编辑并保持接受的答案相关。这些方面的旧信息也在接受答案的 cmets 中。

标签: python visual-studio-code python-black


【解决方案1】:

问题是对于 1.38.1 及更高版本,您需要在 --line-length 之后使用 =80 而不是 80

--line-length=80  

【讨论】:

  • 感谢 Pavel - 考虑到 VS Code 设置的变化,我相信这个答案现在是正确的,尽管之前的正确答案得到了更多的支持,因为它已经正确了一年多。
  • @RafaelZayas [需要引用] vs 代码设置已更改。这个答案是等价的,它直接使用gui vs编辑settings.json。
  • @KeithDevens 我认为 VS Code 体验已经改变,因此 GUI 是与设置交互的最常见方式。黑色格式化程序设置中甚至没有提示“在 settings.json 中编辑”,就像其他一些设置一样。我认为更改已接受的答案以匹配当前 VS Code 设置的编辑状态是最合适的,而不是提出问题时的设置。
  • 你是对的。如果我找到了一种在我的 VS Code 版本中编辑 json 文件的简单方法,我不会在这里发布它。如果有人知道如何以旧方式编辑设置,我很乐意将这条信息添加到我的答案中。
  • 于 2020 年 9 月 28 日在“VS Code 1.49.2”和“black-20.8b1”上工作。非常感谢!
【解决方案2】:

examples of formatter-specific settings 显示以下内容:

"python.formatting.autopep8Args": ["--max-line-length", "120", "--experimental"],
"python.formatting.yapfArgs": ["--style", "{based_on_style: chromium, indent_width: 20}"]

那就试试吧:

"python.formatting.blackArgs": ["--line-length", "80"]

【讨论】:

  • 您确定这是 Black 的正确格式吗?它似乎对我不起作用。
  • 我刚刚用不同的行长测试了以下设置,它可以工作:"python.formatting.blackArgs": ["-S", "--line-length", "80"] 你使用的是最新版本的 1. VSCode,2. Python 扩展,3. Black?
  • 这个对我有用:"python.formatting.blackArgs": ["--line-length=119"] ...其他选项都没有。
  • 我最初将此答案标记为正确。不过由于最近VS Code的python扩展args发生了变化,我相信现在下面列出了正确的答案,我已经将其标记为答案。
  • @RafaelZayas [需要引用] 正在更改 vs 代码设置。这个答案仍然有效(试试看)。另一个答案只是使用 gui 来设置设置。
【解决方案3】:

在设置 GUI 窗格中配置的正确方法是使用 --line-length 和所需的值作为单独的项目:

Visual Studio Code GUI Settings for Python Formatting

这会将settings.json转换成这样:

Visual Studio Code JSON Settings for Python Formatting

"python.formatting.provider": "black",
"python.formatting.blackArgs": ["--line-length", "110"]

【讨论】:

  • 这正是我想要的!
【解决方案4】:

我的设置是: "python.formatting.blackArgs": ["--line-length=110"] 它工作正常。 您的用户 settings.json 中缺少等号

【讨论】:

  • 这并没有提供问题的答案。一旦你有足够的reputation,你就可以comment on any post;相反,provide answers that don't require clarification from the asker。 - From Review
  • 感谢您的指导,@MihaiChelaru。我编辑了答案以直接进入重点。
  • 嗨 DarkJediNinja - 我一直在使用 Keith 指示的设置,并且鉴于 VS Code 设置文档,我认为这与它在其他格式设置中的工作方式最一致。但我也赞成这一点,因为如果我坚持使用命令行类型的设置,我会尝试使用等号的单字符串技巧。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-11-09
  • 2020-12-25
  • 1970-01-01
  • 1970-01-01
  • 2020-10-07
  • 1970-01-01
  • 2022-11-10
相关资源
最近更新 更多