即使将Black配置为formatter,也会得到 "扩展'Python语言基础'不能格式化~''"。

问题描述 投票:0回答:1

我正试图为VS Code设置一个格式化程序。我想使用Black,但我很难让它工作。当我尝试使用格式化文档命令时,我得到一个错误信息,说 "Python自动格式化,扩展'Python语言基础'不能格式化~''"。扩展 "Python 语言基础 "不能格式化 ~''"。

我按照网上的教程做了以下工作。

  • pip3 install black
  • 设置黑色为python格式化提供者(进入设置,找到 "Python ' Formatting: 提供者",从下拉菜单中选择 "黑色")
  • 开启格式保存
  • 将默认格式化器设置为空

为什么VS Code还是默认为'Python语言基础'?我如何将其改为Black或yapf?

python visual-studio-code vscode-settings python-black
1个回答
0
投票

如果还是调用内置的Python语言基础扩展。那就说明黑棋的配置不对了. 似乎你做的步骤没有什么问题,所以我建议你仔细检查一下设置。

  • pip3 install black

在这里,你必须确保 您安装Black的Python环境与您在VS Code中激活的Python环境相同。. 请看以下文档 选择并激活环境. 如果您有多个Python版本,或者您正在使用虚拟环境,您必须确保您激活的是正确的版本。

解释器 选择解释器

enter image description here

(test-py38) gino@~$ pip install black
Requirement already satisfied: black in ./.venvs/test-py38/lib/python3.8/site-packages (19.10b0)
...
(test-py38) gino@~$ which black
/Users/gino/.venvs/test-py38/bin/black

您可以设置 python.formatting.blackPath 来明确指定Black的路径。

"python.formatting.blackPath": "/Users/gino/.venvs/test-py38/bin/black"

你也可以尝试手动调用Black来检查它是否正常工作。

(test-py38) gino@~$ black test.py
reformatted test.py
All done! ✨ 🍰 ✨
1 file reformatted.
  • 设置Black为python格式化提供者(进入设置,找到 "Python ' Formatting.Provider",从下拉菜单中选择Black)。提供者",从下拉菜单中选择Black)
  • 开启格式保存
  • 将默认格式化器设置为空

再次,仔细检查你的 设置.json

"editor.defaultFormatter": null,
"editor.formatOnSave": true,
"python.formatting.provider": "black",

另外,请确保你的设置是正确的,因为VS Code有3套设置。用户, 工作空间文件夹 设置.

enter image description here

当我尝试使用格式化文档命令时

鉴于您启用了 formatOnSave你真的不需要打电话给我 文件格式 命令。当你保存文件时,它应该会自动调用 defaultFormatter (也就是 null),所以它调用了特定语言的格式器(python.formatting.provider).

如果你真的想手动调用该命令,可以尝试使用 用...*格式化文档,然后选择**Python。.

enter image description here


0
投票

你给出的错误信息有点不正常,因为'autopep8'是默认的格式化,如果你没有安装格式化提供商,VSCode会提示你安装。

'Python语言基础'是一个内置的扩展,它说。扩展'Python语言基础'不能格式化。这个功能是由python扩展提供的。所以,也许你可以尝试重新安装'Python'等相关扩展,重新打开VSCode,甚至重新安装VSCode。有人也遇到了同样的问题,通过重装解决了这个问题。 这里

© www.soinside.com 2019 - 2024. All rights reserved.