WindowsのVisual Studio CodeでPython!! その2
前回の続きです。
今回は Windows10 のVisual Studio Codeで
- Lint が機能する
ようにします
Visual Studio Code の準備 の続き
Lint 設定
Visual Studio Codeの Python拡張は、Pylint、Pep8、Flake8に対応しています
Lint エラーになるソースを準備し確認します
以下の内容を bad-source.py で保存してください
import sys import os def main(): x = 1 pwd = os.getcwd() print(pwd) if __name__ == '__main__': main()
Lint 設定 - Pylint
Pylintは、初期設定で有効になっているので、bad-source.py を保存すると、
問題タブの bad-source.py に
[pylint] 'W0612:Unused variable 'x'' (6, 5)
が表示され、Pylint が機能しています!
また、以下のコマンドを実行すると
pylint bad-source.py
以下のように詳細な結果が表示されます
No config file found, using default configuration ************* Module bad-source C: 1, 0: Module name "bad-source" doesn't conform to snake_case naming style (invalid-name) C: 1, 0: Missing module docstring (missing-docstring) C: 5, 0: Missing function docstring (missing-docstring) C: 6, 4: Variable name "x" doesn't conform to snake_case naming style (invalid-name) W: 6, 4: Unused variable 'x' (unused-variable) W: 2, 0: Unused import sys (unused-import) ------------------------------------------------------------------ Your code has been rated at 2.50/10 (previous run: 2.50/10, +0.00)
Lint 設定 - Flake8
Flake8は、初期設定で有効にではないので、
Visual Studio Codeのファイル -> 基本設定 -> 設定 を開き、
以下の設定値をユーザー設定に追加
"python.linting.flake8Enabled": true, "python.linting.pylintEnabled": false,
すると、Linter flake8 is not installed. のエラーになります。
これは、Flake8 パッケージが無いからです
Pylint でエラーにならなかったのは、パッケージがあったからです。
パッケージの有無は、以下のコマンドで確認できます
conda list | Select-String pylint conda list | Select-String flake8
pylintあり、flake8なし の結果になります
Lint 設定 - Flake8 - パッケージ追加
パッケージ管理は、Anaconda に内包されている conda で行うことにします。
Python標準のパッケージ管理システムは pip ですが、
以下の理由から conda で行うことにしました
- Anaconda に組込み済みのパッケージは conda で管理しているらしい
- conda はバイナリダウンロードなので、ビルドしなくていい
- pip と conda は混ぜない方がよいらしい
ということで conda で Flake8 パッケージを追加する為に、
まず、以下のコマンドを実行します
anaconda search -t conda -p win-64 flake8
このコマンドで、以下を確認します
先頭の anaconda/flake8 が、Windows 64bit、Python 3.6 に対応してそうなので、
以下のコマンドを実行し、インストールコマンドを取得します
anaconda show anaconda/flake8
最後にあるコマンドを実行します
conda install --channel https://conda.anaconda.org/anaconda flake8
途中 Proceed ([y]/n)? となるので y としました。
以下のコマンドでインストール確認を行います
conda list | Select-String flake8 flake8 --version
バージョンは以下のようになりました
3.5.0 (mccabe: 0.6.1, pycodestyle: 2.3.1, pyflakes: 1.6.0) CPython 3.6.4 on Windows
Lint 設定 - Flake8 - 有効化
Visual Studio Code は、Flake8 パッケージがインストールされたことを知らないので、
Visual Studio Codeのコマンドパレットを開き、
下記のコマンドでウィンドウの再読み込みを実行します
Reload Window
再読み込みが完了すると、問題タブの bad-source.py に以下のエラーが表示されます
[flake8] F401 'sys' imported but unused (2, 1) [flake8] E302 expected 2 blank lines, found 1 (5, 1) [flake8] F841 local variable 'x' is assigned to but never used (6, 5) [flake8] E303 too many blank lines (3) (12, 1)
また、Pylint と同じようにコマンドからも実行できます
> flake8 bad-source.py .\bad-source.py:2:1: F401 'sys' imported but unused .\bad-source.py:5:1: E302 expected 2 blank lines, found 1 .\bad-source.py:6:5: F841 local variable 'x' is assigned to but never used .\bad-source.py:12:1: E303 too many blank lines (3)
Lint 設定 - まとめ
Visual Studio Codeで Pylint、Flake8を設定できるようなりました。
Pep8 も似たような方法で設定できると思います。
これで、
- Lint が機能する
ようになったので、今回はここまでとします。