tohnamanブログ

東村山に生息するWindows好きな太っちょオヤジプログラマのブログ

WindowsのVisual Studio CodeでPython!! その3

前回の続きです。
今回は Windows10 のVisual Studio Codeで

ようにします

Visual Studio Code の準備 の続き

Formater設定 - 準備

Visual Studio Codeの Python拡張は、AutoPep8、Yapfに対応していて、
初期設定で AutoPep8 が有効になっています。
しかし、パッケージが無いので、ドキュメントのフォーマットを行うと、
以下のエラーが発生します

Formatter autopep8 is not installed.

以下のコマンドでパッケージを確認すると

conda list | Select-String autopep8
conda list | Select-String yapf

どっちも無いので、Yapf を追加することにします。
Yapf を選定した理由は、

  • なんか新しい
  • 攻撃的なフォーマットをしそう(いい意味で)

です。

Formater設定 - Yapf パッケージ追加

Flake8 パッケージを追加したときのように、以下のコマンドを実行します

anaconda search -t conda -p win-64 yapf

先頭の conda-forge/yapf を追加する為に、
以下のコマンドでインストールコマンドを取得します

anaconda show conda-forge/yapf 

最後にあるインストールコマンドを実行します

conda install --channel https://conda.anaconda.org/conda-forge yapf

途中 Proceed ([y]/n)? となるので y としました。
以下のコマンドでインストール確認を行います

conda list | Select-String yapf
yapf --version

バージョンは以下のようになりました

yapf 0.21.0

Visual Studio Codeの ファイル -> 基本設定 -> 設定 を開き、
以下の設定値をユーザー設定に追加

"python.formatting.provider": "yapf",

Formater設定 - 動作確認

前回利用した bad-source.py で確認しても微妙な結果になるので、
Yapf 公式にあるサンプルを利用します
以下の内容を yapf-sample.py で作成します

x = {  'a':37,'b':42,

'c':927}

y = 'hello ''world'
z = 'hello '+'world'
a = 'hello {}'.format('world')
class foo  (     object  ):
  def f    (self   ):
    return       37*-+2
  def g(self, x,y=42):
      return y
def f  (   a ) :
  return      37+-+a[42-x :  y**3]

保存すると、グチャグチャだったソースコードがキレイになります

x = {'a': 37, 'b': 42, 'c': 927}

y = 'hello ' 'world'
z = 'hello ' + 'world'
a = 'hello {}'.format('world')


class foo(object):
    def f(self):
        return 37 * -+2

    def g(self, x, y=42):
        return y


def f(a):
    return 37 + -+a[42 - x:y**3]

デバッグ設定

Visual Studio Code の デバッグ -> 構成の追加 を開き、
表示されるコマンドパレットから Python を選択
すると、Python の構成が追加された launch.json が作成されます

デバッグ

  1. Visual Studio Code 左端の 虫 アイコンを押下
  2. その1で作成した hoge.py を開き、3行目にブレークポイントを追加する
  3. Visual Studio Codeの デバッグ -> デバッグの開始 を選択
  4. 表示される でデバックツールバー の左端の再生(▶)アイコンを押下
    ブレークポイントで停止します

ここまでできれば、Visual Studio Code のデバッグと同じです。

まとめ

これで当初予定していた

が全部できるようになりました

あとは、Python でいろいろ書いてみるだけです。