VSCode+Python+Jupyter Notebookでの開発環境を整える
機械学習(データ分析)をちょっと触りだけやってみようと思い、最近使い始めたVSCodeで環境構築をしてみました Jupyterを使ったことがなかったのでちょっと苦戦しましたが一応動いたので手順を書き記しておきます。 ついでにAnacondaについてくるJupyterを使う場合の手順も記述しておきます。
はじめに
Jupyter(Project Jupyter | Home)はWeb上で様々な言語を実行することのできるツールです。実行するとWebサーバーのようなものが立ち上がり、ブラウザでコードを書いてポチポチして実行できます。データ分析の世界ではメジャーなツールらしいです。
とはいえブラウザ上でコード書くのも微妙だし、毎回ブラウザに移動するのも面倒なのでエディタ上で完結できないか調べたところ、 拡張機能を使ってVSCode上でも実行結果を表示することができるようなので、今回はその環境を構築しました。
こんな感じ
今回はWindowsでやってみましたがたぶんMacとかLinuxでも同じかなと思います。
前提
上記の環境はすでに整っているものとします。入ってない場合はググって適当にインストールしてください
環境構築
Jupyterのインストール
anacondaの仮想環境(Anacondaのcondaコマンドによる仮想環境の使い方のまとめ - minus9d's diary)を入れている場合は不要です。
VSCode上でTerminalを開きます。標準の場合Ctrl+Shift+Pを押し、「python create terminal」でPythonのターミナルパネルを出します。使用するPythonを選択して以下のコマンドを実行します。
# pipでインストール(anacondaを入れている場合は不要) python -m pip install jupyter or pip install jupyter # テスト > jupyter notebook [I 03:22:50.412 NotebookApp] Serving notebooks from local directory: C:\Users\@@@@ [I 03:22:50.413 NotebookApp] 0 active kernels [I 03:22:50.413 NotebookApp] The Jupyter Notebook is running at: (略)
ワークスペースディレクトリの作成
どこかよしななところに開発用のディレクトリを作成します。今後の設定はこのディレクトリのみ有効になるので、環境が違っても安心です
Jupyterのタスク(バックグラウンド実行環境)の設定
タスク>タスクの構成
テンプレートからtasks.jsonを生成
Others 任意の外部コマンドを実行する例
と進めます。
以下の内容をtasks.jsonに記述します。
"cwd": "R:\\test"
の部分は先程作った開発ディレクトリのパスを指定してください。
{ "version": "2.0.0", "tasks": [ { "label": "Run Jupyter Notebook", "type": "shell", "command": "cmd.exe", "args": [ "/C", "'jupyter notebook'" ], "group": "none", "options": { "cwd": "R:\\test" }, "problemMatcher": [] } ] }
Mac/Linuxの場合は、commandの部分をbash
、argsの部分を
"args": [ "-c", "'jupyter notebook'" ],
になるのかなあと思いますが未検証です(検証後追記します)
参考:VSCodeのタスクでjupyter notebookを起動する - Qiita
また、anacondaの仮想環境で実行したい場合はargsの部分を以下のように記述すればOKです。
"args": [ "/C", "'C:\\Users\\[ユーザー名]\\Anaconda3\\Scripts\\activate [仮想環境名] & jupyter notebook'" ],
Jupyterの実行
記述が終わったらタスクの実行をします。
Ctrl+Shift+Pで「task run」と検索して「タスク:タスクの実行」を選ぶ
「Run Jupyter Notebook」を選ぶ
するとJupyterが起動します。選択部分のURLが必要になるのでコピーします。
Ctrl+Shift+Pで「jupyter enter」と検索し、「Jupyter: Enter the url~」を選ぶ
先ほどコピーしたURLを貼り付けてEnter
これで環境は整いました。
(Option)キーバインドの設定
実行を楽にしたい場合はキーバインドの設定をします。
Ctrl+Shift+Pで「shortcuts」と検索し「基本設定:キーボードショートカットを開く」を選ぶ
高度なカスタマイズを行うには~の keybindings.json を押す
次のように入力し、保存
[ { "key": "ctrl+e ctrl+j", "command": "jupyter.execCurrentCell", "when": "editorTextFocus" } ]
keyのところはご自由にどうぞ
実行してみる
ディレクトリの中に pythonファイルをつくって、以下を記述。 matplotlibやnumpyがない場合はエラーになります
#%% import matplotlib.pyplot as plt import matplotlib as mpl import numpy as np x = np.linspace(0, 20, 100) plt.plot(x, np.sin(x)) plt.show() #%% print("Hello")
うまく言っている場合は #%%
の直前に Run cell
とでていると思います。
#%%
で区切られた部分が1つのセクションとなるので、その中のどこでも良いのでカーソルを移動し、
Ctrl+Shift+Pから「Jupyter run cell」を実行します。(キーバインドの設定をした場合はそれを押せばOK)
カーソルが上のセクションを指定している場合はグラフが表示され
下を指定している場合はHelloが出力されます。
matploitlibなどがない場合はModuleNotFoundErrorとなりますが、ひとまずこれで実行できるようになりました。