【问题标题】:Getting "Extension 'Python Language Basics' cannot format ~'/'" even after configuring Black as formatter即使在将 Black 配置为格式化程序后,获取“扩展 'Python Language Basics' 无法格式化 ~'/'”
【发布时间】:2020-06-12 00:08:39
【问题描述】:

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

我已经按照在线教程进行了以下操作:

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

为什么 VS Code 仍然默认使用“Python Language Basics”?如何将其更改为 Black 或 yapf?

【问题讨论】:

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


【解决方案1】:

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

  • pip3 安装黑色

在这里,您必须确保安装 Black 的 Python 环境与您在 VS Code 中激活的 Python 环境相同。请参阅selecting and activating an environment 上的文档。如果您有多个 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 组设置User, Workspace, and Folder settings。

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

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-13
      • 1970-01-01
      • 2022-08-14
      • 1970-01-01
      • 2019-09-05
      • 2021-09-06
      • 2012-05-28
      • 1970-01-01
      相关资源
      最近更新 更多