前提
- vscode+wsl連携済みであること
- wslでpython3.8以上がインストールされていること(blackの動作要件)
結論
- vscodeがwslと連携した状態にする
- vscode左下の接続の表示が、WSL: Ubuntuとなっている状態
- なっていない場合、左下の接続マークをクリックし、wslでフォルダを開き直す
- vscodeにpython拡張機能(microsoft製)をインストール
- vscodeにblack拡張機能(microsoft製)をインストール
- setting.jsonに以下設定
"[python]": {
"editor.defaultFormatter": "ms-python.black-formatter",
"editor.formatOnSave": true
}
不要なもの
- wsl側のpythonが利用されるのでwindows側にpythonはインストール不要
- wsl側にblackのインストールは不要
- vscodeのblack拡張機能は、vscodeのパッケージ上にblackをインストールしてくれる
トラブルシューティング
- なんか動かない気がしたときに、以下あたりを試していた
- wsl側のblackのアンインストール
- vscodeでblackをアンインストール/インストール
- vscodeの再起動
- 適当にインデントをずらしてctrl+sをかけて動いてない気がしたんだけど、blackが対応しない部分のインデントをずらしてしまってたようなので、実はトラシューの途中で動いてたかもしれない感
- 事前にblackの動作知ってると効率的そう(それか複数のパターンでインデントわざと間違えておくなど)
余談
- wsl, ローカルでちゃちゃっとLinuxが動いて最高なんだけど(Windows側にあれこれGUIでいれる必要がないし)、vscode+wslでパッケージが動かないとかwsl関連したトラブル起きると解決に一苦労
- 今回の場合も、windows+vscode+python+blackくらいまでは情報探しやすいが、wslが加わると探しづらいし、情報が少ないし、Linuxのトラシューが追加されて大変