10
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

VSCodeでのPython開発でリアルタイムにコードチェックが走るようにする

Last updated at Posted at 2021-01-13

はじめに

これまでPythonを使うときはちょっとしたスクリプトを書くシーンが多く、とりあえずJupyterNotebookに打ち込み&実行してコーディング規約違反は後から気づいて直す…ということが多かったのですが…

PythonのWebアプリケーションフレームワークであるDjangoでの開発をVisualStudioCodeで行いたい!ということになり、静的コードチェックとフォーマットツールを導入しました。

設定にあたりいくつか記事を参考にさせていただきましたが、JavaScriptのESLintプラグインのように入力時リアルタイムにチェックが走る設定をする記事が見当たらなかったので、備忘も兼ねて記事にしました。

概要

Pythonのコードチェックにはいくつか種類があり、現在VSCodeで設定できるものだけでも以下の通りたくさんあります。

  • bandit
  • flake8
  • mypy
  • prospector
  • pycodestyle
  • pydocstyle
  • pylama
  • pylint (default)

それぞれの特徴などはこの記事には記しませんが、今回インストールしたflake8にはVSCode用にcornflakes-linterというプラグインがあり、導入することで入力に合わせてリアルタイムにコードチェックを走らせることができます!
cornflakes.gif

環境

  • Windows 10 Enterprise
  • Python 3.9.1
  • Visual Studio Code 1.52.1 (Pythonプラグインインストール済)

導入手順

flake8をインストールする

コマンドプロンプト等のコンソールから下記コマンドを実行

pip install flake8

cornflakes-linterプラグインをインストールする

VSCodeのMarketplaceからcornflakes-linterをインストール
image.png

VScodeでcornflakes-linterを設定する

ファイル>ユーザ設定>設定 で設定画面を開く
image.png

cornflake等のキーワードで検索するとCornflakes>Linterの項目が出てくるので、下図のように設定

  • flake8のインストール先パス
  • コードチェックのタイミング(今回はリアルタイムにしたいのでonTypeを選択)
    image.png

VSCodeでデフォルトのLinting設定を変更する【重要】

※ここを正しく設定しないとcornflakes-linterではなくデフォルトのflake8が動作してしまうのでご注意ください(実際躓きました…)

前のステップと同様にVSCodeの設定画面を開き、Python>Lintingの項目を下図のように設定

  • PythonのLinting自体は 有効化
    image.png

  • 初期状態でPylintが有効化されている場合は 無効化
    image.png

  • デフォルトのflake8は 無効化
    image.png

  • デフォルトのLint On Saveは 無効化
    image.png

以上です!いたってシンプルな手順で設定ができました。
この状態で.pyファイルを編集すると、コードチェックが動作するようになっているはずです。

おわりに

フォーマットツールは別途blackをインストールし、保存時に自動整形されるように設定しています。(2つ目の参考リンク)
どのみち自動整形のために保存はするし、こまめな保存癖もあるのですが、リアルタイムチェックだと誤った入力(変数名のタイポなど…)をしたときにすぐ気づけたり、書きながら「あ、こういう書き方駄目なのか」とすぐフィードバックが得られたりとメリットも多いので、使い分けかなと思います。

PythonでWeb開発をされている方にはぜひ一度お試しいただきたいです…!

##参考リンク

https://qiita.com/psychoroid/items/2c2acc06c900d2c0c8cb
https://blog.daisukekonishi.com/post/python-black/

10
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?