BEACHSIDE BLOG

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

VS Code で Anaconda の Python デバッグ 環境構築(Visual Studio Code)

Anaconda で Python の環境を構築し、Visual Studio Code ( VS Code ) でデバッグするまでの環境構築メモです。 仮想環境の切替も簡単でいい感じです。

Visual Studio Code Advent Calendar 2017 の最終日です♪

今回の利用環境は以下です。

  • Windows 10 (Fall Creators Update)
  • VS Code (v1.18.1)
  • Anaconda 5.0.1 (Python 3.6 version) - 64bit

Overview

1. Python のセットアップ
2. 環境変数の設定
3. VS Code のセットアップ
4. デバッグ
5. ターミナルの設定
6. Lint や インテリセンス、フォーマットの設定

1. Python のセットアップ

Anaconda のインストール

AnacondaのサイトからインストーラーをDLしてポチポチ~です。これを書いた時点(2017年12月上旬)での最新版「Anaconda 5.0.1 (Python 3.6 version) - 64bit」を使ってます。

インストール場所の設定は、デフォルト(自身のUserフォルダ直下)はパスが長くて個人的に嫌なので、 C:\local\Anaconda3 というフォルダーを指定しました。

f:id:beachside:20171202174748p:plain


また、Anaconda v5系(←Anaconda3 のv5系というべき?)から、Advanced Installation Options で「Add Anaconda to my PATH environment variavle」のチェックがデフォルトで入っていない点が注意ですね。チェックを入れれば5つくらいの環境変数が入りますが、チェック入れないのを推奨してるようなので、チェックは入れずに後で自分でやりましょうかねと。

f:id:beachside:20171202174757p:plain

Anaconda v3系(←Anaconda3 のv3系のことデス)だと確か環境変数を自動で登録されてた(ですよね?)ので、初めて5系をインストールする際、ちゃんと読まずポチポチチーしてしまうと後でグハッとなりますので注意です。


2. 環境変数の設定

Anaconda Promptではanaconda関連のコマンドが使えますが、ふつーのコマンドプロンプトからanaconda関連のコマンドが使えないです。
前述で書いた環境変数を自分で設定するという選択肢をとったためですね。

ということで環境変数の設定です。
Windowsのボタンクリックして、「環境」くらい入力すれば「環境変数を編集」が表示されますでしょうか。開きましょう。

f:id:beachside:20171202174807p:plain


環境変数の「Path」をダブルクリックして開きます。

f:id:beachside:20171202174816p:plain


最低限の環境変数、以下二つを設定しました。 他は必要に応じて良しなに設定すればよいです。

  • C:\local\Anaconda3
    先ほど Anaconda をインストールしたパス。python.exe がある
  • C:\local\Anaconda3\Scripts
    先ほど Anaconda をインストールしたパス直下のScriptsディレクトリ。activate とかのコマンドの bat ファイルがある

環境変数の変更を反映させるため、既存で開いてるコマンドプロンプトは閉じて新たに起動して、condapython のコマンドが通ることを確認します。

f:id:beachside:20171202174827p:plain


後ほど VS Code からPythonの環境を切り替えて実行の確認ができるように、「py35」という名称でpython3.5の環境を作ってしておきました。

f:id:beachside:20171202174835p:plain


3. VS Code のセットアップ

VS Code はてきとーにインストールしたとして、Pythonを書いたりデバッグを便利にするために、まずはPythonの拡張をインストールしましょう。

Python - Visual Studio Marketplace


コーディングには関係ないですが、vscode-iconsという拡張、色んな拡張子のファイルのアイコンがいい感じに表示されるので(個人的に)必須です。


VS Codeを開いて、デモ用にてきとーな場所に「python-demo」というフォルダを作って「demo1.py」というファイルを作って開いてみました。

f:id:beachside:20171202174844p:plain

VS Code の Side Bar(下にあるけど正式名称です)に「Select Python Environment」と表示されます。これは、Python のパスが設定されていない場合に表示されます。設定しましょう。

python環境変数が通ってると普通にバージョンが表示されますが、仕組み理解のために通ってないていで書きます♪)

VS Code では、ざっくり2通りの設定方法があります。

  • ユーザー設定 : VS Code 全体のデフォルトとして設定
  • ワークスペースの設定 : 開いている特定フォルダ配下のみ(=隠しフォルダ「.vscode」の「settings.json」の適用範囲)にだけ設定

用途に合わせて設定すればよいですね♪

「ユーザー設定」編

ショートカットキーで「Ctrl + ,」(またはメニューのファイル > 基本設定 > 設定)で「ユーザー設定」を開きます (この設定ファイルの実体は、「%APPDATA%\Code\User\settings.json」にあります)

検索で「python.」くらいを入れるとPythonに関する設定の Python Configuration が出てきます。その中で、 python.pythonPathPythonの実行環境のパスになります。

f:id:beachside:20171202181607p:plain

今回は、python.pythonPath"C:\local\Anaconda3\python.exe"(今回インストールした Anaconda3 のルートパスのpython.exe)を設定しました。
これで VS Code のSide Bar(下にあるけど..)にも環境情報が表示されたことが確認できます。いい感じです♪

f:id:beachside:20171202174859p:plain


ワークスペースの設定」編

VS Code の Side Bar(下の...)に表示されている環境「Python3.6.3 : Anaconda, Inc. 」をクリックすると、環境を変更できます。先ほどAnacondaで作ったPython3.5の環境名「py35」を入力して設定することができます。変更すると表示も切り替わります。

f:id:beachside:20171202174918g:plain

動作としては、現在開いているWorkspace(「python-demo」フォルダ)に「.vscode」フォルダが作られ、その中に「settings.json」が作られて更新されて環境設定を判断してるわけですな。


4. デバッグ

先ほど作った「demo1.py」にPythonのバージョンを表示するコードを用意しました。

import sys
print(sys.version_info)

デバッグの設定についてちょっと説明します。
左側の「デバッグ」っぽいボタンをクリックしてみましょう。上のほうの「デバッグ」と書かれたところに「構成がありません」と表示されます。

f:id:beachside:20171202174944p:plain


「構成がありません」の右の設定っぽいボタンをクリックするだけで構成ファイル(=launch.json)が勝手に作られます。

launch.json についてちょっとだけ触れておくと、

  • "name": "Python"  これがデバッグの構成で表示される名称なだけなので、変えてもよし
  • "pythonPath"  ここにに設定されてるパスのPythonが動くけど、値は変数が設定されていて、環境変数を見に行ってます
  • "program": "${file}"  この設定になっていると、選択しているファイルが実行される。決まったエントリーポイントのファイルがあるならそれを指定してあげればよいです

f:id:beachside:20171202174956p:plain

このファイルでデバッグ設定をすることが可能です。
デバッグについて詳しくは、こちらに載ってます。

Debugging Python with Visual Studio Code


「demo1.py」が選択されている状態で、デバッグのボタン(または F5 キー)をクリックするとデバッグができます。

f:id:beachside:20171202175008p:plain

デバッグコンソールにprint の結果が表示されているのが確認できます。デバッグコンソールが表示されてない場合は、「Ctrl + Shift + Y」 (または上部メニュー 表示 > デバッグコンソール )で表示できます。

デバッグの操作は、VSを使っている人だと慣れ親しみのある F5(次のブレークポイントまで続行)、F10(ステップオーバー)、F11(ステップイン)とかを使ってポチポチデバッグする感じです。


5. ターミナルの設定

ターミナルは、VS Code のデフォルトでPowerShellが起動するようになってます。変更は、ユーザー設定(「Ctrl + ,」、またはメニューのファイル > 基本設定 > 設定)の「terminal.integrated.shell.windows」で設定すればよいです。

もしコマンドプロンプトに変えたければ、この設定の値を C:\\Windows\\system32\\cmd.exe にしてあげるとOKです。

f:id:beachside:20171202175019p:plain


これで起動設定ができるのでさらなるカスタマイズの例として、VS Code 起動時にコマンドプロンプトでAnacondaの特定の環境にactivate して起動したければ、適当なbatファイルを用意して起動してあげることもできます。

先ほど作った「py35」という環境にactivateされた状態で起動したい場合であれば、

まず「anaconda-activate-py35.bat」(名前テキトー)というバッチファイルを作って中身はこんな感じ。

%windir%\system32\cmd.exe "/K" C:\local\Anaconda3\Scripts\activate.bat C:\local\Anaconda3\envs\py35

このファイルを C:\local\Anaconda3\envs\py35 に置きました。

先ほどユーザー設定で指定した terminal.integrated.shell.windows をこのbatファイルのパス C:\\local\\Anaconda3\\envs\\py35\\anaconda-activate-py35.bat に設定すればOKです。 VS Codeを再起動してみましょう。設定後の初回起動時は、「実行していい?」的なアラートが表示されますので Allow してあげてもう一度 VS Code を再起動すると想定通りの動きをします。

f:id:beachside:20171202175028p:plain


ユーザー設定側でも設定できますが、プロジェクト固有の設定はWorkspaceに設定してあげた方が幸せかも。


6. Lint や インテリセンス、フォーマットの設定

詳細に設定したい場合のドキュメントのリンクです。

おわりに

これで楽しく Deep Learning ができるますね♪
(VS Code でインテリセンスきかせたり、Lintでルールとか勉強しながらコード書いて、Jupyter Notebook に貼るってことやってたりしますが....)


Visual Studio Code Advent Calendar 2017 に参加された皆様お疲れ様でした。良いお年を!