【问题标题】:Problem formatting python when using Prettier in vscode在 vscode 中使用 Prettier 时格式化 python 的问题
【发布时间】:2021-04-01 06:41:14
【问题描述】:

在 vscode 中,我想使用 Prettier 作为我的默认格式化程序,但不适用于 Python,我将只使用 autopep8。我现在有以下设置:

{
  "workbench.iconTheme": "vscode-icons",
  "workbench.editorAssociations": [
    {
      "viewType": "jupyter.notebook.ipynb",
      "filenamePattern": "*.ipynb"
    }
  ],
  "git.confirmSync": false,
  "editor.formatOnPaste": true,
  "editor.formatOnSave": true,
  "editor.defaultFormatter": "esbenp.prettier-vscode",
  "python.formatting.provider": "autopep8",
  "explorer.confirmDelete": false,
  "python.showStartPage": false,
  "explorer.confirmDragAndDrop": false
}

当我保存 python 文件时,它给了我消息:“扩展 'Pretier - 代码格式化程序无法格式化等......'。所以,显然它仍然对 python 文件使用错误的格式化程序。我该如何更改? !

【问题讨论】:

    标签: python visual-studio-code vscode-settings prettier


    【解决方案1】:

    如果我禁用 Prettier 作为默认格式化程序,它不会在保存时格式化,但我的 Python 将在保存时由 autopep8 格式化。考虑到这一点,以下解决方案对我有用,让 Prettier 可用于其他语言,而 autopep8 可用于 Python:

    {
      "workbench.iconTheme": "vscode-icons",
      "workbench.editorAssociations": [
        {
          "viewType": "jupyter.notebook.ipynb",
          "filenamePattern": "*.ipynb"
        }
      ],
      "git.confirmSync": false,
      "editor.formatOnPaste": true,
      "editor.formatOnSave": true,
      "python.formatting.provider": "autopep8",
      "explorer.confirmDelete": false,
      "python.showStartPage": false,
      "explorer.confirmDragAndDrop": false,
      "python.linting.pylintArgs": ["--load-plugins=pylint_django"],
      "javascript.updateImportsOnFileMove.enabled": "always",
      "editor.defaultFormatter": "esbenp.prettier-vscode",
      "[python]": {
        "editor.defaultFormatter": "ms-python.python"
      }
    }
    

    如果有人找到更好的解决方案,请告诉我!

    【讨论】:

    • 这太完美了!非常感谢
    • 谢谢你的提示,我的脑袋撞了
    【解决方案2】:

    您可以做@round_circle 所做的事情,因为这应该有效。如果您不想设置初始提供程序,例如您可能想使用 Black,您也可以添加到您的 settings.json:

    "[python]": {
        "editor.defaultFormatter": null
      },
    

    我碰巧使用的是 Microsoft 的 Python 扩展,默认为 autoPep8,这将提示您设置要使用的格式化程序。 photo of the prompt to add formatter 然后您可以在 settings.json 中添加您的提供程序,方法是:

    "python.formatting.provider": <your_formatter>
    

    这里也可以参考:VS Code Formatting

    【讨论】:

      【解决方案3】:

      @round_circle 的回答中有意义的配置 sn-p:

      "[python]": {
          "editor.defaultFormatter": "ms-python.python"
        }
      

      添加后,autopep8 适用于 python 文件。

      【讨论】:

        【解决方案4】:

        在 VSCode 中,Python 的“Formatting”由 Python 扩展提供。因此,对于 Python,请使用 Python 扩展中的格式(例如:autopepe8),以避免使用重复的格式设置,使其不起作用。

        参考:Formatting

        【讨论】:

          猜你喜欢
          • 2018-12-03
          • 2020-10-17
          • 1970-01-01
          • 2019-02-07
          • 2020-10-27
          • 1970-01-01
          • 2021-08-31
          • 2020-06-22
          • 2023-02-02
          相关资源
          最近更新 更多