当前位置: 首页 > 知识库问答 >
问题:

格式化程序黑色在我的 VS 代码上不起作用...但是为什么?

长孙承嗣
2023-03-14

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

当我安装并设置VSCode格式化程序‘black’(将linter设置为flake8后)时,教程视频导师的一侧显示弹出类似formatter autopep8未安装。“安装?”。

所以我做的是...

    < li >在终端上手动输入" pipenv install flack - dev - pre"。 < li >手动输入" python . formatting . provider ":" black ",到" settings . JSON " on "。“vscode”文件夹。 < li >设置(VSCode) -

底层代码来自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


    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...但最重要的是,现在我担心我是否走在正确的轨道上。

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

共有3个答案

尹雅健
2023-03-14

就像camab说的,你完全可以从命令行运行它:

$ black file.py

您还可以在python文件的整个文件夹(目录)上运行它:

如果我有:

src/
| - module/
|   | - moduleFile.py
|   \ - __init__.py
|
\ - script.py

然后跑

$ black src

它将格式化moduleFile.py__init__. pyscript.py

就您的VSCode配置而言,我也喜欢在设置.json

{
    "editor.formatOnSave": true,
    "python.linting.lintOnSave": true,
}

以确保每次我按保存文件时都会被棉绒和格式化。

如果您在VSCode中有过linting/格式化问题,可以使用“命令调色板”(Ctrl-Shift P)强制执行以下命令:

  • Python:运行Lting
  • Python:选择Linter
  • 格式化文档
  • 使用…格式化文档

如果确实存在问题,这应该会产生视觉弹出样式错误。

希望这有助于编码并快乐!

弘承业
2023-03-14

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

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

最后,打开 vs 代码的 settings.json,为其添加以下段。

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

关键是:

"editor.defaultFormatter": null

如果您仍然使用"editor.defaultFormatter":"黑色"作为许多旧帖子,'黑色'格式化程序将无法在较新的vs代码中工作。

訾晋
2023-03-14

我在VSCode内部使用了黑色,它棒极了。它解放了你用来决定如何格式化你的代码的精神周期。最好从自己喜欢的编辑器中使用。如果需要一次格式化很多文件,只需从命令行运行即可。

首先,检查您的VSCode<code>设置中是否有此项。json</code>(使用Ctrl-P设置打开它):

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

请记住,可能有两个setting.json文件:一个在主目录中,另一个在项目(< code >)中。vscode/settings.json)。项目内部的占优势。

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

如果你没有明确地选择一个解释器,现在点击状态栏中的Python版本。也可以用Ctrl-P“Python:Select Interpreter”来做。选择状态栏后,它应该会改变。

现在打开一个新终端。由于您选择了解释器,因此您的虚拟环境应由 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中的解释器安装black。您也可以使用Conda进行安装,但根据我的经验,VSCode与pip相比效果更好。

还是不工作?单击TERMINAL的“OUTPUT”选项卡兄弟,并尝试在“日志”输出中获取更多信息。在下拉菜单中选择它:

 类似资料:
  • 在安装并启用了ESlint和Prettier的Nuxt应用程序中,我切换到了Visual Studio代码。 当我打开一个.vue文件并按cmd+shift+p并选择格式化文档时,我的文件根本不会被格式化。 My.Prettierrc设置: 我有这么多的源代码行,所以我不能手动格式化它们。我做错了什么?

  • 我最近安装了VS代码和Go扩展,总的来说,它非常舒适,但是格式化代码不起作用,无论是ALT Shift F还是上下文菜单,还是on save。 我能把代码格式化成什么格式? ,和从命令行可以正常工作。几天前,一切都很顺利。

  • 问题内容: 我正在尝试编写关于弹跳球的代码,但是我仍然沉迷于如何 使弹跳球。该代码似乎是正确的,日食没有错误消息 ,但是球还是没有动。任何帮助/提示表示赞赏。 这是我的代码: 问题答案: 基本上,什么都没有移动。 每次滴答作响,您要做的就是重新粉刷。 您需要将移动逻辑移至已注册的方法Timer 更像… 这样,每次Timer打勾时,您都在相应地更新球的位置… 更新了工作示例 我做了两个更改。我将设置

  • 我对这段代码有一个问题,因为我似乎找不到问题所在?这是我试图解决的问题:-声明并编写一个名为valid_triangle的函数,它将表示三角形三边长度的三个实数作为参数,并根据这三个长度是否能够构成三角形输出真或假。 关于三角形的以下规则: 三角形只能有正长度的边 三角形任意两条边的长度之和必须大于第三条边的长度

  • 因此,下面的代码,从txt文件中取序列号作为参数,在我的计算机上正常工作。每个数字都写在一行上。下面是代码: 但它在CodeEval中不起作用。站点编译器是这么说的: Fontconfig错误:无法加载默认配置文件线程“main”java.awt.HeadLessException:未设置X11显示变量,但此程序执行了需要它的操作。在java.awt.GraphicsEnvironment.Che