読者です 読者をやめる 読者になる 読者になる

BEACHSIDE BLOG

MicrosoftとかC#を好むレンジャーの個人的メモ

VS Code で Python をデバッグする環境構築(+ NumPy, SciPy, Matplotlib を実行する環境構築)

VS Code Python

Visual Studio Code(VS Code)でPythonデバッグ実行する環境構築する際のメモです。 NumPy, SciPy, Matplotlibを使って機械学習用に環境作ろうとしています。 f:id:beachside:20160817001852j:plain

> Overview

作業の全体像は以下です。

1. 必要なものをダウンロード&インストール
2. VS Codeの環境設定
3. コーディング&デバッグ

ここら辺を参考にしています。
code.visualstudio.com

> Environment

NumPy, SciPy, Matplotlibを使うために、これらがまとまってるEnthought Canopyをインストールしてますが、エディターはもちろんvs codeで実行します。
機械学習については、Azure MLでポチポチーっと絶賛検証中なんですが、勉強としてこっちも手を出してみたくなった今日この頃です。

1.必要なものをダウンロード&インストール

まず、Pythonをインストールしていない場合は、インストールします。
www.python.org 2系と3系がありますので、ご利用は計画的に…ですね。今回の私の環境のバージョンは、以前からインストールしてあった3.5.1です。

そして機械学習用に使うライブラリ、NumPy, SciPy, MatplotlibがまとまってるEnthought Canopyをインストールします。ファイルサイズが大きいです(400MBくらい)。
Canopy Subscription Options | Enthought

検証目的なので、Canopy Express(無料版)をインストールしました。バージョンは、これをダウンロードしたときに最新の1.7.4.3348です。 インストールの画面キャプチャは張りませんが….インストーラーをポチポチ進むだけです。 注意点は、インストールするディレクトリは後で使うので、メモっておいた方がよいです。

そして、VS Codeがない方は、本家からダウンロードしてセットアップします。手順は本家を見たほうがよいでしょう。
https://www.visualstudio.com/ja-jp/products/code-vs.aspx
バージョンは、1.4.0を使っています。

2. VS Codeの環境設定

VS Codeのセットアップが終わったら、まずはPythonの拡張をインストールします。色々ありますが、今回の環境では、こちらをインストールしました。 marketplace.visualstudio.com

次に、先ほどインストールしたEnthought Canopyのライブラリが利用できるよう、VS Codeのsettings.jsonの設定を更新します。 画面上部のファイル > 基本設定 > ユーザー設定を選択すると、setting.jsonファイルが開きます。 f:id:beachside:20160816233150p:plain

2つのタブが開かれますが、左側は、既定の設定のようで、今回は変更する必要がありません。 f:id:beachside:20160816233426p:plain 右側のsettings.jsonを以下のようにpython.autoComplete.extraPathsを設定します。指定するパスは、私の場合のパスの設定を書いていますので、個々の環境に合わせて変更が必要です。Enthought Canopyのライブラリをインストールしたパスの…ざっくり以下のような場所にあります。

{
    "python.autoComplete.extraPaths": [
      "C/Users/beachside/AppData/Local/Enthought/Canopy/User/Lib/site-packages"
    ]
}

更新したら、開いているファイルを保存します。 (もしかして、ここでVS Codeの再起動必要でしょうかね?)

3. コーディング&デバッグ

今回、事前に作業フォルダとして「C:\dev」を作っておきました。
VS Codeの上部メニューのファイル > フォルダを開くを選択し、作業フォルダの「C:\dev」を開きます。
f:id:beachside:20160816232335p:plain

VS Code上で空っぽのdevフォルダが開きましたね。
f:id:beachside:20160816232427p:plain

次に、デバッグで動作できるようにtasks.jsonの設定をします。 vs code上でF1キーをおしてコマンドパレットを開き、taskと入力します。そして、タスク: タスクランナーの構成を選択します。
f:id:beachside:20160816231152p:plain

次に、Othersを選択します。
f:id:beachside:20160816231722p:plain

.vscodeフォルダが作成され、その中にtasks.jsonファイルが生成されて、表示されます。tasks.jsonについては、本家ドキュメントの以下に概要が書いています。
https://code.visualstudio.com/docs/editor/tasks

では、Pythonデバッグができるように、以下のように変更します。

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "0.1.0",
    "command": "python",
    "isShellCommand": true,
    "args": ["${file}"],
    "showOutput": "always",
    "problemMatcher": "$tsc"
}

変更・追加の概要は以下です。

  • 「command」をPythonに設定
  • 「args」を${file}に設定
  • "problemMatcher": "$tsc"を追加

これで準備は完了したので、プログラムを書いてみましょう。
devフォルダの直下にhello.pyというファイルを作成します。
f:id:beachside:20160816235107p:plain

hello.pyファイルのコードは、以下のように書きました。

import numpy as np

print('hello python !')
print ("numpy version:" + np.version.full_version)

NumPyをimportして、バージョンを表示することで、ライブラリが読み込めることを確認してます。

全てのファイルを保存して、実行してみます。 VS Codeの左ペインで「hello.py」ファイルを選択して(これ大事)、Ctrl + Shift + B で実行してみましょう。
f:id:beachside:20160816235810p:plain
正常な場合、上図のように、OUTPUTに出力結果が表示されます。

エラーが起きるようでしたら…(エラーの種類次第ですが)….NumPyのImportでエラーが起きているようでしたら、settings.jsonのパスが間違っているか、もしくはVS Code再起動でちゃんと読み込めるようになるってのはありました。これで機械学習も捗りま…捗ることを祈るばかりです。

(2016-08-19追記)
デバッグの方法書き忘れてた!デバッグするには、デバッグのボタンをクリックします。

f:id:beachside:20160819114339p:plain

初めてデバッグする場合、構成ファイル(=launch.json)がありません。サクッと作りましょう。デバッグの開始しそうなボタンをクリックし、環境の選択でPythonを選択します。これだけで自動生成してくれます。

f:id:beachside:20160819114456p:plain

launch.jsonについては、今回は何も編集しませんが、以下が参考になりそうです。

Debugging in Visual Studio Code
Debugging · DonJayamanne/pythonVSCode Wiki · GitHub

エクスプローラーでに戻って今回作成したmain.pyファイルを選択し、デバッグを開始できます。

f:id:beachside:20160819120258g:plain

F10でStep over、F11でStep inしたり、ブレークポイントおいてF5で飛んだり、変数にカーソルを中身を見ることができますね。

おしまい。