Formatter black 在我的 VSCode 上不起作用......但为什么呢?

新手上路,请多包涵

我已经开始使用 Python 和 Django,我在这个领域还很陌生。这是我第一次在这里提问…如果有已知的解决方案,我会提前道歉…

当我安装并设置 VSCode 格式化程序“black”(将 linter 设置为 flake8 之后)时,教程视频导师端显示弹出窗口,如“未安装格式化程序 autopep8”。安装?’。 & Mine 没有显示该消息。

所以我所做的是…

  1. 在终端上手动输入“pipenv install flack –dev –pre”。
  2. 手动输入 “python.formatting.provider”: “black”, 到 ‘.vscode’ 文件夹中的 ‘settings.json’。
  3. Setting(VSCode) -> flake8, Python > Linting: Flake8 Enabled (Also modified in: workspace), (勾选方框) 是否使用 flake8 lint Python 文件

底部代码来自 settings.json(在 vscode 文件夹中)。


{
  "python.linting.pylintEnabled": false,
  "python.linting.flake8Enabled": true,
  "python.linting.enabled": true,
  "python.formatting.provider": "black", # input manually
  "python.linting.flake8Args": ["--max-line-length=88"] # input manually
}

我找到了一个“黑色格式化程序”文档。 https://github.com/psf/black & 它说… python -m black {source_file_or_directory} & 我收到以下错误消息。


    Usage: __main__.py [OPTIONS] [SRC]...
Try '__main__.py -h' for help.

Error: Invalid value for '[SRC]...': Path '{source_file_or_directory}' does not exist.

是的,老实说,我不确定我应该设置哪个 source_file_or_directory…但最重要的是现在我担心我是否在正确的轨道上。

我能听听你的建议吗?请至少指明方向。谢谢..

原文由 mireumireu 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 7.1k
2 个回答

我在 VSCode 中使用 Black,它非常棒。它释放了您决定如何格式化代码的思维周期。最好从您最喜欢的编辑器中使用它。如果您需要一次格式化大量文件,只需从命令行运行即可。

首先,检查你的 VSCode 中是否有这个 settings.json (使用 Ctrl-P + 设置打开它):

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

请记住,可能有 2 个 setting.json 文件:一个在您的主目录中,一个在您的项目中( .vscode/settings.json )。以项目内的为准。

也就是说,这类问题通常与使用未安装 black 的 python 解释器有关。我建议使用虚拟环境,但首先要检查状态栏上的 python 解释器:

VSCode状态栏中的Python解释器

如果您没有明确选择解释器, 请现在单击状态栏中的 Python 版本进行选择。您也可以使用 Ctrl-P +“Python:选择解释器”来完成。选择它后状态栏应该改变。

现在打开一个新终端。由于您选择了解释器,VSCode 应该会自动激活您的虚拟环境。使用您的解释器路径运行 python 并尝试导入黑色:

 $ python
Python 3.7.3 (default, Mar 27 2019, 22:11:17)
[GCC 7.3.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import black
>>>

导入失败?问题解决了。只需使用来自 venv 的解释器安装黑色: python -m pip install black 。您也可以使用 Conda 安装,但根据我的经验,VSCode 与 pip 配合使用效果更好。

还是行不通?单击终端的“输出”选项卡,并尝试在“日志”输出中获取更多信息。在下拉菜单中选择它:

vscode的日志输出

原文由 neves 发布,翻译遵循 CC BY-SA 4.0 许可协议

为那些仍然无法解决 vs 代码中的“黑色”格式问题的人附上我的发现。

首先,你必须在全局或本地安装 black(如果你使用像 conda 这样的虚拟环境)

然后,确保您的 vs 设置如下,将 python 默认格式化程序提供程序设置为“黑色”: 在此处输入图像描述

最后,打开你的 vs 代码的 settings.json,为它添加下面的部分。

 "[python]": {
    "editor.defaultFormatter": null,
    "editor.insertSpaces": true,
    "editor.tabSize": 4,
    "editor.formatOnSave": true
}

关键点是:

 “编辑器.defaultFormatter”:空

如果您仍然像许多旧帖子一样使用 “editor.defaultFormatter”: “black” ,则 ‘black’ 格式化程序将无法在较新的 vs 代码中使用。

原文由 abnerl 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题