VSCodeのPython拡張機能が更新されたと発表され、Jupyter Notebookの扱いが便利になったようなので確認してみました。
要約
- VSCode上でPythonコード(拡張子
.py
)を#%%
の区切り単位で実行できる - 実行結果はコードと合わせてJupyter Notebook形式(拡張子
.ipynb
)で出力できる - 逆に既に作成されたJupyter Notebook形式のファイルを
#%%
で区切られたPythonコードに変換することもできる - つまりVSCodeのみでJupyter Notebookの新規作成や既存ファイルの編集を完結させられる
環境
OS : Windows10 (10.0.17134)
Visual Studio Code : 1.28.2
VSCodeのPython拡張機能 : 2018.10.1
python : 3.6.6
jupyter : 1.0.0
jupyter_contrib_nbextensions : 0.5.0
パッケージ管理にはconda(4.5.11)を使用し、pipでは検証していません。
仮想環境の作成
conda create -n test -y
※ test
は適当に付けた仮想環境名であり、実際には自由に好きな名前を付けて下さい。
Jupyter Notebookの扱いに必要なパッケージのインストール
conda install jupyter jupyter_contrib_nbextensions -y
※ jupyter_contrib_nbextensions
がないと後のファイル変換の際にエラーが出ます。
今回の動作確認用に使用するパッケージのインストール
conda install numpy matplotlib -y
拡張子.pyのPythonファイルを新規作成
ここではtest.py
とします。
作成した仮想環境をVSCodeで選択
下記記事などを参考にして下さい。
Visual Studio Code のデバッグで、virtualenv, venv のPython仮想環境を使う
https://qiita.com/82p/items/7c1b3b6c470b2f08bf51
実行してみる
実行単位となるセル毎に先頭に#%%
を付けるとその上にRun Cell
と表示されるので、クリックするかShift+Enter
を押して実行します。
すると右側に新しいウインドウ(Python Interactive)が開いて実行結果が表示されます。
Jupyer Notebook形式(拡張子.ipynb
)で出力
保存ボタンをクリックするとJupyter Notebook形式で出力できます。(ファイル名をtest.ipynb
とします。)
ブラウザで開いてみる
.ipynb
形式で出力した直後に右下にこのような通知が表示され、「Open in browser」をクリックするとブラウザで開くことができます。
通知を消してしまった場合は、コマンドラインでjupyter notebook
を実行して先程保存した.ipynb
形式のファイルをブラウザで開きます。
開いてみると以下のように出力も行われた状態で保存されていることが分かります。このまま配布しても問題ないですね。
今度は逆にブラウザ上で編集した.ipynb
ファイルをVSCodeで開く
下図のように編集してみます。
ついでにMarkdown形式のコメントも追加しました。
ちなみにmatplotlibでグラフ表示している箇所で1番目のセルで定義された変数x
を使用していますが、先程の手順でjupyter notebook
コマンドを実行して開いた場合は一旦1番目のセルを実行しなければ変数が定義されないためエラーとなって表示されません。
一方、通知から開いた場合はVSCodeで起動済みのものにアクセスするため、変数も全て定義済みの状態で操作できます。
上書き保存したtest.ipynb
をVSCodeで開こうとすると「Pythonコードにインポートしますか?」と右下に表示されるのでImport
をクリックします。
表示されない場合はファイルを右クリックし、「Import Jupyter Notebook」をクリックして下さい。
すると下図の左側のように新たなファイルが生成されます。
Run All Cells
をクリックすれば右側のようにきちんと表示されます。
またMarkdown形式のコメントは先頭に#%% [markdown]
を付ければいいことが分かります。
ちなみにグラフの軸の数字が見えないのは黒系のテーマを使用しているからで、テーマをLight(Visual Studio)にすると以下のように表示されます。
おまけ
tqdm
で進捗表示させようと思ったのですが更新毎に新たな行に表示されてしまいました。
tqdm_notebook
の方は表示すら不可能でした。
まとめ
.py
ファイルをVSCode上で実行して出力を確認
⇒.ipynb
形式で保存
⇒ブラウザ上で確認・編集して上書き
⇒再度VSCode上で開く
という作業が行えることを確認できました。
これでVSCodeの強力な拡張機能を利用してJupyter Notebookの編集が行えますね。