繁体   English   中英

带有黑色的Python VSCode formatOnSave在WSL中不起作用

[英]Python VSCode formatOnSave with black not working in WSL

我正在使用 WSL2 处理一些 Python 项目,但黑色在 VSCode(远程 - WSL)中不会自动格式化。

系统信息:

  • 基础系统:Windows 11 Pro x64
  • WSL2 系统:Ubuntu-22.04-LTS
  • WSL 中的settings.json路径:/home/<user>/. /home/<user>/.vscode-server/data/Machine/settings.json /data/Machine/settings.json

我的settings.json看起来像:

{
  // Python linting and formatting customizations..
  "python.linting.pylintEnabled": false,
  "python.linting.flake8Enabled": true,
  "python.linting.enabled": true,
  "python.linting.flake8Args": ["--max-line-length=100", "--ignore=E501"],
  "python.formatting.provider": "black",
  "python.formatting.blackArgs": ["--line-length", "100"],
  "[python]": {
    "editor.codeActionsOnSave": {
      "source.organizeImports": true
    },
    "editor.formatOnSave": true
  }
}

同样的设置适用于我的 Windows 11 系统。 在本地 Windows 中,每当我为 python 项目创建虚拟环境并保存 python 文件时,vscode 会自动要求我在 venv 中安装flake8black 但在 WSL 中没有发生任何此类事情。

即使我在 WSL Python venv 中安装black ,它也不会自动格式化 Python 代码; 并且在Output > PythonOutput > Log (Main)选项卡中没有可见的与black相关的日志。

但是在 venv 中安装black后手动格式化有效:

(venv) asif@MSI:~/vscode/myproject/$ black app_pkg/models.py 
reformatted app_pkg/models.py

All done! ✨ 🍰 ✨
1 file reformatted.

注意:我什至尝试将"python.formatting.blackPath": "./venv/bin/black"添加到settings.json文件,但没有成功。

任何帮助将非常感激。 提前致谢!

编辑:正如建议的那样,我在我的系统中启用了这两个设置,普遍应用保存时的格式: 保存设置上的格式 Python 代码格式化程序设置为black Python 默认格式化程序设置

我仍然无法使 Python formatOnSave在 VSCode-WSL 中工作。

但是在 venv 中安装 black 后手动格式化有效

可见黑色可以工作。现在我们来为vscode设置自动格式化:

先打开vscode的设置, format on save ,然后勾选。 设置这一步,每次保存文件都会自动排版代码。

在此处输入图像描述

然后搜索Python formatting provider并选择black

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM