Jupyter対話環境を使ってVS Codeでノートブックのデバッグ:Visual Studio Codeで快適Pythonライフ(1/2 ページ)
Jupyter拡張機能が提供する対話環境の基本的な使い方と、それを利用したノートブックのデバッグの方法を紹介します。
前回はVisual Studio Code(以下、VS Code)でJupyterするための基本について見ました。今回はJupyter拡張機能が提供する対話環境と、それを使ったノートブックのデバッグについて見ていきます。
Jupyter対話環境
Python拡張機能には[Python: REPLを開始]コマンドがあります。これはパネル領域にPythonの対話環境を開くものです。
一方、Jupyter拡張機能には[Jupyter: Create Interactive Window]コマンドがあります。
このコマンドを実行すると、以下のようにPython拡張機能で実行されるシンプルなREPLとは見た目がかなり異なる対話環境が起動されます(これをここでは「Jupyter対話環境」と呼ぶことにしましょう)。
タブの右上には前回と同様な対話環境のカーネルを選択するボタンがあります(ここでは[Python 3.9.6……]と既にカーネルが選択された状態です)。タブ上部には前回に見たのと同様なボタンと、前回はなかったボタンが幾つか表示されています。
- [Clear All]ボタン:それまでに入力したコードとその出力を全てクリアする
- [Restart]ボタン:カーネルを再起動する(それまでにこの環境で定義していた変数や関数はなくなる)
- [Interrupt]ボタン:実行に長い時間がかかっている処理を中断する
- [Variables]ボタン:現在定義されている変数の一覧をパネル領域の[Variables]タブに表示する
- [Save]ボタン:これまでに入力したコードをJupyter Notebookファイル(.ipynbファイル)として保存する
- [Export]ボタン:これまでに入力したコードをPythonスクリプト(.pyファイル)、HTMLファイル、PDFファイルにエクスポートする
- [Expand]ボタン:[Collapse]ボタンで折りたたんだセルを展開する
- [Collapse]ボタン:セルの内容をコンパクトに折りたたむ
その下にある「Started 'Python……」のようなメッセージの下に、これから入力するコードとその実行結果が表示されていきます。タブの一番下にあるテキストボックスがコードを入力する部分です。ここには複数行のコードを入力できます。
[Enter]キーを押すと、テキストボックスに改行が入力される点には注意してください。入力したコードを実行するには、[Shift]+[Enter]キーか[Ctrl]+[Enter]キーを押します(もちろん、テキストボックスの左にある[コードの実行]ボタンをクリックしても構いません)。
以下は階乗を求める関数を定義するコードをJupyter対話環境で入力しているところです。
ご覧の通り、IntelliSenseによるコード補完も使えますし、カーソルキーを動かして打ち間違いを修正することも可能です。通常のREPLを使うよりも、こちらの方が便利に使えるという人もいるでしょう。ここで[Shift]+[Enter]キーを押せば、入力したコードが実行されます。
上の画像のように、入力したコードが対話環境として開かれたノートブックに記載され、その実行結果が表示されます(ここでは関数定義なので、結果はありません)。この後に、テキストボックスで[↑]キー/[↓]キーを押せば、入力したコードの履歴を上下にたどれるので、これまでに入力したコードを修正したり、変更したりしてもう一度実行するのも簡単です。
このように以前に入力したコードの履歴をたどって、テキストボックスで編集することは可能ですが、セルの内容を編集したり、再実行したりすることはできません。また、Markdownでドキュメントを記述することもサポートはされていません。通常のJupyterノートブックとはこれらの点が異なっているので注意してください(Jupyter対話環境とは、テキストボックスの形をしたプロンプトにコードを入力するとその結果が表示されるというRead-Eval-Print LoopをJupyterノートブックで実現したものであり、そのために編集や再実行ができないのだと筆者は理解しています)。
ここで[Save]ボタンをクリックすると、保存するファイルの名前を尋ねるダイアログが表示されるので、ファイル名を指定すれば、Jupyter Notebookとして保存が行われます。また、[Export]ボタンを押すと、出力先のファイル種別(Pythonスクリプト/HTML/PDF)を指定するダイアログが表示されるので、どのファイルとして保存するか、続けてファイル名を指定することで、ノートブックをエクスポートすることもできます。
ただし、筆者がJupyter Notebookとして保存してみたところ、インデントが全く含まれないノートブックが保存されてしまいました(Pythonスクリプトへのエクスポートでも同様でした)。
インデントがちゃんと保存されれば、もっと便利に使えるかもしれませんが、そこまでするなら最初からJupyter Notebookを作成するのがよいでしょう。あくまでも、コードの動作を確認するためのちょっとリッチな実行環境と考えておくのがよいかもしれません。が、実はJupyter Notebookをデバッグするには、このJupyter対話環境が必須となります。次ページでは、これを見てみます。
連載一覧
- 第1回「Visual Studio Codeから「Hello Python」してみよう」
- 第2回「VS Codeでのファイルの作成と編集の第一歩:アクティビティーバーと[エクスプローラー]ビューを使ってみよう」
- 第3回「VS CodeでのPythonコーディングを快適にするエディタ機能の使い方」
- 第4回「コマンドパレットを駆使してVS Codeを使いこなそう!」
- 第5回「ショートカットキーを活用して、VS Codeをより快適に!」
- 第6回「ここから始めるVS Codeのカスタマイズ」
- 第7回「フォントからエディタ、改行文字まで、VS Codeを自分好みにカスタマイズ」
- 第8回「VS Codeの拡張機能でPythonの仮想環境構築からコード整形、Lintまでを体験してみよう」
- 第9回「VS Codeを使ってPythonコードをデバッグするための基礎知識」
- 第10回「VS CodeでPythonコードのデバッグ構成をしてみよう」
- 第11回「VS CodeでJupyterしてみよう」
- 第12回「Jupyter対話環境を使ってVS Codeでノートブックのデバッグ」(本稿)
Copyright© Digital Advantage Corp. All Rights Reserved.