DEV Community

loading...

VSCode: Using Black to automatically format Python

adamlombard profile image Adam Lombard (he/him) Updated on ・1 min read

Black is "the uncompromising Python code formatter." It can be configured to automatically format your code whenever you save a file in VSCode.

Install Black in your virtual environment:

$ pip install black
Enter fullscreen mode Exit fullscreen mode

Install Microsoft's Python extension in VSCode:

Microsoft's Python extension in VSCode

Open your VSCode settings, by going 'Code -> Preferences -> Settings'.

Search for "python formatting provider" and select "black" from the dropdown menu:

The VSCode settings interface for the "python formatting provider" options

In the settings, search for "format on save" and enable the "Editor: Format on Save" option:
The VSCode settings interface for the "format on save" option

Black will now format your code whenever you save a *.py file.

Before saving:
Code before formatting

After saving:
Code after formatting


More: How to set Black line lengths in VSCode


Images from VSCode using Hyper Term Theme.

Discussion

pic
Editor guide
Collapse
waylonwalker profile image
Waylon Walker

I generally need to pass in the black path as well. This might be compatibility issues with wsl.

pipx install black
Enter fullscreen mode Exit fullscreen mode

settings.json

  "python.formatting.provider": "black",
  "python.formatting.blackPath": "/home/<user>/.local/bin/black",
Enter fullscreen mode Exit fullscreen mode

additionally you can turn on automatic formatting on save

"editor.formatOnSave": true,
Enter fullscreen mode Exit fullscreen mode

if you don't want automatic formatting on save for every language

  "editor.formatOnSave": false,
  "[python]": {
    "editor.formatOnSave": true,
   },
Enter fullscreen mode Exit fullscreen mode
Collapse
moonsmile profile image