首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >格式化程序黑色在我的VSCode…上不起作用但是为什么呢?

格式化程序黑色在我的VSCode…上不起作用但是为什么呢?
EN

Stack Overflow用户
提问于 2020-12-02 10:39:22
回答 3查看 12K关注 0票数 7

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

当我安装并设置VSCode格式化程序‘黑色’(在设置林特为flake8之后),教程视频导师端弹出类似‘格式化程序autopep8未安装。安装?’的弹出窗口。我的没有显示该消息。

所以我所做的是..。

  1. 在终端上手动输入'pipenv install flack --dev --pre‘。
  2. 手动输入"python.formatting.provider":"black“到'.vscode‘文件夹中的'settings.json’。
  3. Setting(VSCode) -> flake8,Python > Linting:启用Flake8 (也在工作空间中修改),(勾选了复选框)是否使用flake8链接Python文件

最下面的代码来自settings.json (在vscode文件夹中)。

代码语言:javascript
复制
{
  "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 {来源_文件_或者_directory} &我得到以下错误消息。

代码语言:javascript
复制
Usage: __main__.py [OPTIONS] [SRC]...
Try '__main__.py -h' for help.

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

是的,老实说,我不确定是哪个消息来源_文件_或者_目录我应该set...but最重要的,现在我担心我是否在正确的轨道上。

我能听听你的建议吗?请至少找个方向走吧。谢谢..。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-02-25 19:55:53

我使用VSCode内部的黑色,它很棒。如果需要一次格式化大量文件,只需从命令行运行即可。

首先,检查settings.json中是否有以下代码:

代码语言:javascript
复制
"python.formatting.provider": "black",
"editor.formatOnSave": true,

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

也就是说,这类问题通常是在没有安装black的情况下使用python解释器。我建议使用虚拟环境,但首先检查您的python解释器。

在状态栏中单击Python版本:

​如果您没有显式选择解释器,那么现在就选择。该路径还将出现在您的设置文件中:

代码语言:js
复制
"python.pythonPath": "Scripts\\python.exe",

现在打开终端,运行python并尝试导入black:

代码语言:javascript
复制
$ 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
>>>

导入失败?问题解决了。

还是不能工作吗?在终端的" output“选项卡中单击,并尝试在"Log”输出中获取更多信息。在下拉菜单中选择它:

票数 17
EN

Stack Overflow用户

发布于 2021-02-06 05:46:37

正如camab所说,您完全可以从命令行运行它:

代码语言:js
复制
$ black file.py

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

例如,如果我有:

代码语言:javascript
复制
src/
| - module/
|   | - moduleFile.py
|   \ - __init__.py
|
\ - script.py

然后运行

代码语言:js
复制
$ black src

它将格式化moduleFile.py __init__.py,以及script.py

至于你的VSCode配置,我也想在settings.json

代码语言:javascript
复制
{
    "editor.formatOnSave": true,
    "python.linting.lintOnSave": true,
}

为了确保每次我按下save时,文件都会被linted和格式化。

如果您在VSCode中遇到有关linting/formatting的问题,您可以使用“命令调色板”(Ctrl+Shift+P)强制执行以下命令:

  • Python:运行Linting
  • Python:选择Linter
  • 格式化文档
  • 格式化文档...

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

希望这对编码有帮助,快乐的编码!

票数 2
EN

Stack Overflow用户

发布于 2020-12-02 11:21:54

在我看来,使用黑色最好的方式是通过终端。所有你需要做的就是在终端的pip上安装它,使用: pip install black,然后当它安装完成后,你进入终端并输入: black filename.py

完整的一行应该是: black filepath/file.py,所以对于桌面上的一个名为test.py的文件,如果你想在多个文件上执行,而不是对每个文件单独执行,那么在mac上就是: black desktop/test.py。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65101442

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档