我正试图为VS Code设置一个格式化程序。我想使用Black,但我很难让它工作。当我尝试使用格式化文档命令时,我得到一个错误信息,说 "Python自动格式化,扩展'Python语言基础'不能格式化~''"。扩展 "Python 语言基础 "不能格式化 ~''"。
我按照网上的教程做了以下工作。
为什么VS Code还是默认为'Python语言基础'?我如何将其改为Black或yapf?
如果还是调用内置的Python语言基础扩展。那就说明黑棋的配置不对了. 似乎你做的步骤没有什么问题,所以我建议你仔细检查一下设置。
- pip3 install black
在这里,你必须确保 您安装Black的Python环境与您在VS Code中激活的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.
- 设置Black为python格式化提供者(进入设置,找到 "Python ' Formatting.Provider",从下拉菜单中选择Black)。提供者",从下拉菜单中选择Black)
- 开启格式保存
- 将默认格式化器设置为空
再次,仔细检查你的 设置.json
"editor.defaultFormatter": null,
"editor.formatOnSave": true,
"python.formatting.provider": "black",
另外,请确保你的设置是正确的,因为VS Code有3套设置。用户, 工作空间和 文件夹 设置.
当我尝试使用格式化文档命令时
鉴于您启用了 formatOnSave
你真的不需要打电话给我 文件格式 命令。当你保存文件时,它应该会自动调用 defaultFormatter
(也就是 null
),所以它调用了特定语言的格式器(python.formatting.provider
).
如果你真的想手动调用该命令,可以尝试使用 用...*格式化文档,然后选择**Python。.
你给出的错误信息有点不正常,因为'autopep8'是默认的格式化,如果你没有安装格式化提供商,VSCode会提示你安装。
'Python语言基础'是一个内置的扩展,它说。扩展'Python语言基础'不能格式化。这个功能是由python扩展提供的。所以,也许你可以尝试重新安装'Python'等相关扩展,重新打开VSCode,甚至重新安装VSCode。有人也遇到了同样的问题,通过重装解决了这个问题。 这里