VS Code Python + Black格式化程序参数 - python.formatting.blackArgs

Raf*_*yas 7 python visual-studio-code

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

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

"python.formatting.blackArgs": [
    "--line-length 80"
],
Run Code Online (Sandbox Code Playgroud)

认为这是在VS Code Python格式化中将参数传递给黑色的正确方法.

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

Formatting with black failed.
Error: Error: no such option: --line-length 80
Run Code Online (Sandbox Code Playgroud)

编辑:如果我编辑我的settings.json没有args,例如:

"python.formatting.blackArgs": [],
Run Code Online (Sandbox Code Playgroud)

黑色按预期工作.

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

Pav*_*ari 37

问题是对于 1.38.1 及更高版本,您需要=80而不是80after --line-length

--line-length=80  
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明


Kei*_*ens 12

格式化程序特定设置示例显示以下内容:

"python.formatting.autopep8Args": ["--max-line-length", "120", "--experimental"],
"python.formatting.yapfArgs": ["--style", "{based_on_style: chromium, indent_width: 20}"]
Run Code Online (Sandbox Code Playgroud)

所以尝试:

"python.formatting.blackArgs": ["--line-length", "80"]
Run Code Online (Sandbox Code Playgroud)

  • 我刚用不同的线路长度测试了以下设置,它可以工作:`"python.formatting.blackArgs":[" - S"," - line-length","80"]`你使用的是最新版本的1吗? VSCode,2.Python扩展,3.黑色? (2认同)

Mir*_*cea 8

希望最新 VSCode 和 Black 的答案能有所帮助:

使用从扩展安装的 VsCode Insiders (1.83.0-insider) 和 Black (v2023.4.1),从扩展安装 ( https://marketplace.visualstudio.com/items?itemName=ms-python.black-formatter )

我必须将-lor--line-length80作为单独的项目添加到File->Preferences->Settings->[type]black->Black-formatter: Args->Add item.

在用户设置 json ( Ctrl + Shift + P --> Open User Settings) 中我有:

"black-formatter.args": ["--line-length", "80"]
Run Code Online (Sandbox Code Playgroud)

如果这不起作用,输出窗口中有有用的信息(您可以选择 Black Formatter)来查看 Black 的日志。


fel*_*lla 7

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

用于 Python 格式的 Visual Studio Code GUI 设置

这将转换为 settings.json 成:

用于 Python 格式的 Visual Studio Code JSON 设置

"python.formatting.provider": "black",
"python.formatting.blackArgs": ["--line-length", "110"]
Run Code Online (Sandbox Code Playgroud)


Dar*_*nja 5

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