連載
» 2021年08月20日 05時00分 公開

Jupyter対話環境を使ってVS CodeでノートブックのデバッグVisual Studio Codeで快適Pythonライフ(1/2 ページ)

Jupyter拡張機能が提供する対話環境の基本的な使い方と、それを利用したノートブックのデバッグの方法を紹介します。

[かわさきしんじ,Deep Insider編集部]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

「Visual Studio Codeで快適Pythonライフ」のインデックス

連載目次

 前回はVisual Studio Code(以下、VS Code)でJupyterするための基本について見ました。今回はJupyter拡張機能が提供する対話環境と、それを使ったノートブックのデバッグについて見ていきます。

Jupyter対話環境

 Python拡張機能には[Python: REPLを開始]コマンドがあります。これはパネル領域にPythonの対話環境を開くものです。

[Python: REPLを開始]コマンドによりREPLを開いたところ [Python: REPLを開始]コマンドによりREPLを開いたところ

 一方、Jupyter拡張機能には[Jupyter: Create Interactive Window]コマンドがあります。

[Jupyter: Create Interactive Window]コマンド [Jupyter: Create Interactive Window]コマンド

 このコマンドを実行すると、以下のようにPython拡張機能で実行されるシンプルなREPLとは見た目がかなり異なる対話環境が起動されます(これをここでは「Jupyter対話環境」と呼ぶことにしましょう)。

Jupyter拡張機能から起動された対話環境 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対話環境で入力しているところです。

Jupyter対話環境にコードを入力しているところ Jupyter対話環境にコードを入力しているところ

 ご覧の通り、IntelliSenseによるコード補完も使えますし、カーソルキーを動かして打ち間違いを修正することも可能です。通常のREPLを使うよりも、こちらの方が便利に使えるという人もいるでしょう。ここで[Shift]+[Enter]キーを押せば、入力したコードが実行されます。

fact関数が定義された fact関数が定義された

 上の画像のように、入力したコードが対話環境として開かれたノートブックに記載され、その実行結果が表示されます(ここでは関数定義なので、結果はありません)。この後に、テキストボックスで[↑]キー/[↓]キーを押せば、入力したコードの履歴を上下にたどれるので、これまでに入力したコードを修正したり、変更したりしてもう一度実行するのも簡単です。

関数を定義するコードの履歴を表示したところ 関数を定義するコードの履歴を表示したところ

 このように以前に入力したコードの履歴をたどって、テキストボックスで編集することは可能ですが、セルの内容を編集したり、再実行したりすることはできません。また、Markdownでドキュメントを記述することもサポートはされていません。通常のJupyterノートブックとはこれらの点が異なっているので注意してください(Jupyter対話環境とは、テキストボックスの形をしたプロンプトにコードを入力するとその結果が表示されるというRead-Eval-Print LoopをJupyterノートブックで実現したものであり、そのために編集や再実行ができないのだと筆者は理解しています)。

 ここで[Save]ボタンをクリックすると、保存するファイルの名前を尋ねるダイアログが表示されるので、ファイル名を指定すれば、Jupyter Notebookとして保存が行われます。また、[Export]ボタンを押すと、出力先のファイル種別(Pythonスクリプト/HTML/PDF)を指定するダイアログが表示されるので、どのファイルとして保存するか、続けてファイル名を指定することで、ノートブックをエクスポートすることもできます。

 ただし、筆者がJupyter Notebookとして保存してみたところ、インデントが全く含まれないノートブックが保存されてしまいました(Pythonスクリプトへのエクスポートでも同様でした)。

保存したノートブックを開いたところ 保存したノートブックを開いたところ

 インデントがちゃんと保存されれば、もっと便利に使えるかもしれませんが、そこまでするなら最初からJupyter Notebookを作成するのがよいでしょう。あくまでも、コードの動作を確認するためのちょっとリッチな実行環境と考えておくのがよいかもしれません。が、実はJupyter Notebookをデバッグするには、このJupyter対話環境が必須となります。次ページでは、これを見てみます。

       1|2 次のページへ

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。