Jupyter拡張機能が提供する対話環境の基本的な使い方と、それを利用したノートブックのデバッグの方法を紹介します。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
前回はVisual Studio Code(以下、VS Code)でJupyterするための基本について見ました。今回はJupyter拡張機能が提供する対話環境と、それを使ったノートブックのデバッグについて見ていきます。
Python拡張機能には[Python: REPLを開始]コマンドがあります。これはパネル領域にPythonの対話環境を開くものです。
一方、Jupyter拡張機能には[Jupyter: Create Interactive Window]コマンドがあります。
このコマンドを実行すると、以下のようにPython拡張機能で実行されるシンプルなREPLとは見た目がかなり異なる対話環境が起動されます(これをここでは「Jupyter対話環境」と呼ぶことにしましょう)。
タブの右上には前回と同様な対話環境のカーネルを選択するボタンがあります(ここでは[Python 3.9.6……]と既にカーネルが選択された状態です)。タブ上部には前回に見たのと同様なボタンと、前回はなかったボタンが幾つか表示されています。
その下にある「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対話環境が必須となります。次ページでは、これを見てみます。
Copyright© Digital Advantage Corp. All Rights Reserved.