0

我正在尝试为 VS Code 设置格式化程序。我想使用黑色,但我很难让它发挥作用。当我尝试使用 Format Document 命令时,我收到一条错误消息,提示“Python 自动格式化:扩展 'Python Language Basics' 无法格式化 ~'/'”。

我遵循了在线教程并完成了以下操作:

  • pip3 安装黑色
  • 将黑色设置为python格式提供程序(进入设置,找到“Python › Formatting:Provider”,从下拉列表中选择黑色)
  • 保存时打开格式
  • 将默认格式化程序设置为 null

为什么 VS Code 仍然默认为“Python 语言基础”?如何将其更改为 Black 或 yapf?

4

2 回答 2

3

如果它仍在调用内置的 Python Language Basics 扩展,那么这意味着 Black 没有正确配置。您执行的步骤似乎没有任何问题,因此我建议您仔细检查设置。

  • pip3 安装黑色

在这里,您必须确保安装 Black 的 Python 环境与您在 VS Code 中激活的 Python 环境相同。请参阅有关选择和激活环境的文档。如果您有多个 Python 版本或者您正在使用虚拟环境,则必须确保您激活了正确的版本。

Python:选择解释器

在此处输入图像描述

(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.
  • 将黑色设置为python格式提供程序(进入设置,找到“Python › Formatting:Provider”,从下拉列表中选择黑色)
  • 保存时打开格式
  • 将默认格式化程序设置为 null

再次,仔细检查您的settings.json

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

此外,请确保您配置了正确的设置,因为 VS Code 有 3 组设置UserWorkspaceFolder settings

在此处输入图像描述

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

鉴于您启用了formatOnSave,您真的不需要调用Format Document命令。当您保存文件时,它应该会自动调用defaultFormatter(即null),因此它会调用特定于语言的格式化程序(python.formatting.provider)。

如果您真的想手动调用该命令,请尝试Format Document With..然后选择Python

在此处输入图像描述

于 2020-06-13T05:48:07.860 回答
0

您给出的错误信息有点不寻常,因为“autopep8”是默认格式,如果您没有安装格式提供程序,VSCode 会提示您安装它。

“Python Language Basics”是一个内置扩展,它说:扩展“Python Language Basics”无法格式化。该函数由 python 扩展提供。所以,也许你可以尝试重新安装相关的扩展,例如“Python”,重新打开 VSCode,甚至重新安装 VSCode。有人也遇到同样的问题,通过重装解决了。 这里

于 2020-06-16T12:59:46.550 回答