mir*_*ght 4 python visual-studio-code python-black
我已经开始使用 Python 和 Django,我在这个领域很新。这是我第一次在这里提问……如果有已知的解决方案,我会提前道歉……
当我安装并设置 VSCode 格式化程序“黑色”(将 linter 设置为 flake8 之后)时,教程视频导师的一面会弹出类似“未安装格式化程序 autopep8”的弹出窗口。安装?'。& 我的没有显示该消息。
所以我所做的是...
底部代码来自 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
}
Run Code Online (Sandbox Code Playgroud)
我找到了一个“黑色格式化程序”文档。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.
Run Code Online (Sandbox Code Playgroud)
是的,老实说,我不确定我应该设置哪个 source_file_or_directory ......但最重要的是现在我担心我是否在正确的轨道上。
我能听听你的建议吗?至少有一些方向,请。谢谢..
abn*_*erl 56
2024/02/19 更新
之前的解决方案不再适用。
有两个问题:
如果您只想使用“黑色”格式化程序并且不关心问题#2。只需安装 vscode 黑色扩展即可
我修改了问题#2
a 的解决方案。首先安装黑色扩展
b. 设置虚拟环境,安装 black init 并将项目解释器设置为它
c. 转到用户设置,在虚拟环境中将 Black-formatter: Path 设置为“black”
"black-formatter.path": ["black"]
Run Code Online (Sandbox Code Playgroud)
注意:在您需要的python环境中安装'black',删除全局'black'
=====旧 vscode 的过时解决方案=====
为那些仍然无法解决 VS Code 中的黑色格式问题的人附上我的发现。
首先,您必须全局或本地安装 Black(如果您使用像 conda 这样的虚拟环境)。
然后,确保您的 VS 设置如下,将 python 默认格式化程序提供程序设置为“black”:
最后,打开settings.jsonVS Code,为其添加以下部分。
"[python]": {
"editor.defaultFormatter": null,
"editor.insertSpaces": true,
"editor.tabSize": 4,
"editor.formatOnSave": true
}
Run Code Online (Sandbox Code Playgroud)
关键点是:
"editor.defaultFormatter": null
Run Code Online (Sandbox Code Playgroud)
如果您仍然按照许多旧帖子的建议使用"editor.defaultFormatter": "black",则 Black 格式化程序将无法在较新的 VS Code 中工作。
noc*_*mbi 12
对于那些已经尝试过这一切的人:)。
如果您有,黑色将无法在 VSCode 中工作
%matplotlib inline)。从终端上运行黑色文件揭示了这些问题。
就像 camab 所说,你完全可以从命令行运行它:
$ black file.py
Run Code Online (Sandbox Code Playgroud)
您还可以在 python 文件的整个文件夹(目录)上运行它:
例如,如果我有:
src/
| - module/
| | - moduleFile.py
| \ - __init__.py
|
\ - script.py
Run Code Online (Sandbox Code Playgroud)
并运行
$ black src
Run Code Online (Sandbox Code Playgroud)
它将格式化moduleFile.py、__init__.py、 和script.py。
就你的 VSCode 配置而言,我也喜欢settings.json
$ black file.py
Run Code Online (Sandbox Code Playgroud)
确保每次我按“保存”时,文件都会被检查和格式化。
如果您在 VSCode 中遇到 linting/formatting 问题,您可以使用“命令面板”(Ctrl+Shift+P) 强制执行以下命令:
如果确实存在问题,这应该会产生视觉弹出式错误。
希望这对您有所帮助,祝您编码愉快!
我从 VSCode 内部使用黑色,它很摇滚。如果您需要一次格式化大量文件,只需从命令行运行。
首先,检查 settings.json 中是否有这个:
"python.formatting.provider": "black",
"editor.formatOnSave": true,
Run Code Online (Sandbox Code Playgroud)
请记住,可能有 2 个 setting.json 文件:一个在您的主目录中,一个在您的项目 ( .vscode/settings.json) 中。项目内部的那个占上风。
也就是说,这类问题通常与使用未安装 black 的 python 解释器有关。我推荐使用虚拟环境,但首先在状态栏上检查你的python解释器:
如果您没有明确选择解释器,请立即单击状态栏中的 Python 版本。所选路径现在将出现在您的设置文件中:
"python.pythonPath": "Scripts\\python.exe",
Run Code Online (Sandbox Code Playgroud)
现在打开终端。既然你选择了解释器,你的虚拟环境应该会被 VSCode 自动激活。运行 python 并尝试导入 black:
$ 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
>>>
Run Code Online (Sandbox Code Playgroud)
导入失败?问题解决了。只需使用来自 venv 的解释器安装 black: python -m pip install black。
还是行不通?单击 TERMINAL 的“输出”选项卡兄弟并尝试在“日志”输出中获取更多信息。在下拉菜单中选择它:
有一个新的扩展,目前已预发布,用于黑色格式化。请参阅v1.67 发行说明、Python Black 格式。
从自述文件(vscode Marketplace:Black Formatter):
一旦安装在 Visual Studio Code 中,“Black Formatter”将可用作 python 文件的格式化程序。请选择“Black Formatter”(扩展名:ms-python.black-formatter)作为默认格式化程序。您可以通过使用上下文菜单(右键单击编辑器中打开的 python 文件)并选择“使用以下格式设置文档格式”来执行此操作,也可以将以下内容添加到您的设置中:
"[python]": {
"editor.defaultFormatter": "ms-python.black-formatter"
}
Run Code Online (Sandbox Code Playgroud)
您可以通过在设置中设置以下值来启用 python 的保存格式:
"[python]": {
"editor.defaultFormatter": "ms-python.black-formatter",
"editor.formatOnSave": true
}
Run Code Online (Sandbox Code Playgroud)
小智 5
另一种可能性是您添加了格式不正确的黑色参数。该插件希望每个以空格分隔的选项都作为它自己的“项目”添加到设置 UI 中,如下所示:

您应该能够看到参数正确传递到输出->Python 控制台,如下所示:

它不应该看起来像这样:
小智 5
您可以将Black 扩展安装到VSCode,如下所示。*我在 Windows 11 上使用Anaconda :
然后,将下面的代码设置为settings.json。*您可以看到我的回答解释如何打开settings.json:
// "settings.json"
"[python]": {
"editor.defaultFormatter": "ms-python.black-formatter",
"editor.formatOnSave": true
}
Run Code Online (Sandbox Code Playgroud)
下面是我settings.json上面的代码的完整内容:
// "settings.json"
{
"python.defaultInterpreterPath": "C:\\Users\\kai\\anaconda3\\python.exe",
"window.zoomLevel": 3,
"files.autoSave": "afterDelay",
"breadcrumbs.enabled": false,
"[python]": { // Here
"editor.defaultFormatter": "ms-python.black-formatter",
"editor.formatOnSave": true
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7427 次 |
| 最近记录: |