Python インタラクティブ ウィンドウ
Jupyter (旧称 IPython Notebook) は、Markdown テキストと実行可能な Python ソース コードを、ノートブックと呼ばれる 1 つのキャンバス上で簡単に組み合わせることができるオープンソース プロジェクトです。Visual Studio Code は、Jupyter ノートブックとのネイティブな連携をサポートしているほか、Python コード ファイルを介した連携もサポートしています。このトピックでは、Python コード ファイルを介して提供されるサポートについて説明し、以下の方法を示します。
- Jupyter に似たコード セルの操作
- Python インタラクティブ ウィンドウでのコードの実行
- 変数エクスプローラーとデータ ビューアーを使用した、変数の表示、検査、フィルター処理
- リモート Jupyter サーバーへの接続
- Jupyter ノートブックのデバッグ
- Jupyter ノートブックのエクスポート
Jupyter ノートブックを使用するには、VS Code で Anaconda 環境、または Jupyter パッケージがインストールされている別の Python 環境をアクティブにする必要があります。環境を選択するには、コマンド パレット (⇧⌘P (Windows、Linux Ctrl+Shift+P)) から Python: インタープリターを選択 (Select Interpreter) コマンドを使用します。
適切な環境がアクティブになると、Jupyter に似たコード セルの作成と実行、コード セルを実行するためのリモート Jupyter サーバーへの接続、および Python ファイルの Jupyter ノートブックとしてのエクスポートが可能になります。
Jupyter コード セル
Python コード内では、# %% コメントを使用して Jupyter に似たコード セルを定義します。
# %%
msg = "Hello World"
print(msg)
# %%
msg = "Hello again"
print(msg)
注意: 上記のコードは、必ず .py 拡張子を持つファイルに保存してください。
Python 拡張機能がコード セルを検出すると、Run Cell と Debug Cell の CodeLens 装飾を追加します。最初のセルには Run Below も含まれ、それ以降のすべてのセルには Run Above が含まれます。

注意: デフォルトでは、Debug Cell はユーザー コードのみをステップ実行します。ユーザー コード以外のコードをステップ実行したい場合は、Jupyter 拡張機能の設定 (⌘, (Windows、Linux Ctrl+,)) で Debug Just My Code のチェックを外す必要があります。
Run Cell は、その 1 つのコード セルにのみ適用されます。最初のセルに表示される Run Below は、ファイル内のすべてのコードを実行します。Run Above は、その装飾があるセルまでの(そのセルは含まない)すべてのコード セルに適用されます。たとえば、特定のセルを実行する前に、実行環境の状態を初期化するために Run Above を使用します。
コマンドを選択すると、Jupyter が起動し(必要な場合。1 分ほどかかることがあります)、Python インタラクティブ ウィンドウで適切なセルが実行されます。

また、(Ctrl+Enter) キーを使用するか、Python: 選択範囲/行を Python ターミナルで実行 (Run Selection/Line in Python Terminal) コマンド (Shift+Enter) を使用してコード セルを実行することもできます。このコマンドを使用した後、Python 拡張機能は自動的にカーソルを次のセルに移動します。ファイルの最後のセルにいる場合、拡張機能は Jupyter ノートブックの動作を模倣して、新しいセル用の別の # %% デリミタを自動的に挿入します。
また、行番号の左側の余白をクリックしてブレークポイントを設定することもできます。その後、Debug Cell を使用して、そのコード セルのデバッグ セッションを開始できます。デバッガーはブレークポイントで実行を停止し、コードを 1 行ずつステップ実行して変数を確認できます(詳細は デバッグ を参照してください)。
追加のコマンドとキーボード ショートカット
次の表は、コード セルを操作するときにサポートされる追加のコマンドとキーボード ショートカットを示しています。
| コマンド | キーボード ショートカット |
|---|---|
| Python: 次のセルに移動 (Go to Next Cell) | Ctrl+Alt+] |
| Python: 前のセルに移動 (Go to Previous Cell) | Ctrl+Alt+[ |
| Python: 上のセルまで選択範囲を拡張 (Extend Selection by Cell Above) | Ctrl+Shift+Alt+[ |
| Python: 下のセルまで選択範囲を拡張 (Extend Selection by Cell Below) | Ctrl+Shift+Alt+] |
| Python: 選択したセルを上に移動 (Move Selected Cells Up) | Ctrl+; U |
| Python: 選択したセルを下に移動 (Move Selected Cells Down) | Ctrl+; D |
| Python: 上にセルを挿入 (Insert Cell Above) | Ctrl+; A |
| Python: 下にセルを挿入 (Insert Cell Below) | Ctrl+; B |
| Python: 現在の位置の下にセルを挿入 (Insert Cell Below Position) | Ctrl+; S |
| Python: 選択したセルを削除 (Delete Selected Cells) | Ctrl+; X |
| Python: セルをコードに変更 (Change Cell to Code) | Ctrl+; C |
| Python: セルを Markdown に変更 (Change Cell to Markdown) | Ctrl+; M |
Python インタラクティブ ウィンドウの使用
前のセクションで言及した Python インタラクティブ ウィンドウは、任意のコード(コード セルの有無にかかわらず)を実行できるスタンドアロン コンソールとして使用できます。ウィンドウをコンソールとして使用するには、コマンド パレットから Jupyter: インタラクティブ ウィンドウの作成 (Create Interactive Window) コマンドを使用して開きます。その後、コードを入力し、Enter キーで改行し、Shift+Enter キーでコードを実行できます。
ファイルでこのウィンドウを使用するには、コマンド パレットから Jupyter: Python インタラクティブ ウィンドウで現在のファイルを実行 (Run Current File in Python Interactive Window) コマンドを使用します。
IntelliSense
Python インタラクティブ ウィンドウには、コード補完、メンバー リスト、メソッドのクイック ヒント、パラメーター ヒントなど、完全な IntelliSense が備わっています。コード エディターで入力するのと同様に、Python インタラクティブ ウィンドウでも効率的に作業を行うことができます。

プロット ビューアー
プロット ビューアーを使用すると、プロットをより詳細に操作できます。ビューアー内では、現在のセッションのプロットをパン、ズーム、移動できます。プロットを PDF、SVG、および PNG 形式にエクスポートすることもできます。
Python インタラクティブ ウィンドウ内で、任意のプロットをダブルクリックしてビューアーで開くか、プロットの左上隅にある展開ボタンを選択します。

注意: Python インタラクティブ ウィンドウは、matplotlib および Altair で作成されたプロットのレンダリングをサポートしています。
変数エクスプローラーとデータ ビューアー
Python インタラクティブ ウィンドウ内では、現在の Jupyter セッション内の変数を表示、検査、およびフィルター処理できます。コードやセルを実行した後に、インタラクティブ ウィンドウのツールバーにある Variables ボタンを選択して変数エクスプローラーを開くと、現在の変数の一覧が表示され、コード内で変数が使用されると自動的に更新されます。

変数に関する詳細情報を確認するには、行をダブルクリックするか、Show variable in data viewer (データ ビューアーで変数を表示) ボタンを使用して、データ ビューアーで変数の詳細ビューを表示することもできます。開いた後、行を検索して値をフィルター処理できます。

リモート Jupyter サーバーへの接続
リモート Jupyter サーバーに接続することで、Jupyter ノートブックでの負荷の高い計算を他のコンピューターにオフロードできます。接続すると、コード セルはローカル コンピューターではなくリモート サーバーで実行されます。
リモート Jupyter サーバーに接続するには
-
コマンド パレット (⇧⌘P (Windows、Linux Ctrl+Shift+P)) から Jupyter: 接続用のローカルまたはリモートの Jupyter サーバーを指定する (Specify local or remote Jupyter server for connections) コマンドを実行します。
-
Jupyter サーバーへの接続方法を選択します。

-
リモートで作業する場合は、プロンプトが表示されたときに、
?token=URL パラメーターで認証トークンを含めたサーバーの URI (ホスト名) を指定します(認証トークンを有効にして VS Code ターミナルでサーバーを起動した場合、トークンを含む URL は通常ターミナルの出力に表示されるため、そこからコピーできます)。または、URI を指定した後にユーザー名とパスワードを指定することもできます。
-
Python インタラクティブ ウィンドウは、URI を表示することでコードがどこで実行されているかを示します(下の画像ではぼかされています)。

注意: セキュリティを強化するため、Microsoft は、SSL やトークンのサポートなどのセキュリティ対策を講じて Jupyter サーバーを構成することをお勧めします。これにより、Jupyter サーバーに送信されるリクエストが確実に認証され、リモート サーバーへの接続が暗号化されます。ノートブック サーバーのセキュリティ保護に関するガイダンスについては、Jupyter のドキュメント を参照してください。
Jupyter ノートブックの Python コード ファイルへの変換
Jupyter がインストールされている環境をアクティブにすると、VS Code で Jupyter ノートブック ファイル (.ipynb) を開き、それを Python コードに変換できます。ファイルを変換した後は、他の Python ファイルと同様にコードを実行したり、VS Code デバッガーを使用したりできます。VS Code でノートブックを開いてデバッグすることは、Jupyter ノートブックで直接行うのが難しいコードのバグを特定して解決する便利な方法です。
ノートブック ファイルを開くと、Visual Studio Code は自動的にそれをノートブック エディターで開きます。ツールバーの変換アイコンを使用して、ノートブック (.ipynb) ファイルを Python ファイル (.py) に変換します。

変換アイコンを選択し、続いて「Python Script」を選択して数秒待つと、VS Code は変換されたノートブックを無題のファイルで開きます。ノートブックのセルは、Python ファイル内では # %% コメントで区切られます。Markdown セルは、先頭に # %% [markdown] が付いたコメントに完全に変換され、コードやグラフなどの出力とともに、インタラクティブ ウィンドウで HTML としてレンダリングされます。

注意: Python ファイルでコード セルを初めて実行するとき、Python 拡張機能は Jupyter サーバーを起動します。サーバーが起動し、コードの結果が表示された Python インタラクティブ ウィンドウが表示されるまでに、少し時間がかかる場合があります。
Jupyter ノートブックのデバッグ
Visual Studio Code デバッガーを使用すると、コードをステップ実行し、ブレークポイントを設定し、状態を検査し、問題を分析できます。デバッガーの使用は、ノートブックのコード内の問題を特定して修正するのに役立つ方法です。
-
VS Code で、この記事の冒頭で説明したように、Jupyter がインストールされている Python環境をアクティブにします。
-
前のセクションで説明したように、ノートブックの
.ipynbファイルを VS Code にインポートします(Azure Notebooks などのクラウドベースの Jupyter 環境を使用している場合は、まずファイルをダウンロードしてください)。 -
デバッガーを開始するには、次のいずれかのオプションを使用します。
- ノートブック全体の場合は、コマンド パレット (⇧⌘P (Windows、Linux Ctrl+Shift+P)) を開き、Jupyter: Python インタラクティブ ウィンドウで現在のファイルをデバッグ (Debug Current File in Python Interactive Window) コマンドを実行します。
- 個々のセルの場合は、セルの上に表示される Debug Cell 装飾を使用します。デバッガーはそのセル内のコードからデバッグを開始します。デフォルトでは、Debug Cell はユーザー コードのみをステップ実行します。ユーザー コード以外のコードをステップ実行したい場合は、Jupyter 拡張機能の設定 (⌘, (Windows、Linux Ctrl+,)) で Debug Just My Code のチェックを外す必要があります。
-
変数の検査、ブレークポイントの設定、その他のアクティビティなど、VS Code の一般的なデバッグ機能に慣れるには、VS Code のデバッグ を確認してください。
-
問題が見つかったら、デバッガーを停止し、コードを修正してファイルを保存し、再びデバッガーを開始します。
-
すべてのコードが正しいことを確認できたら、ファイルを保存し、次のセクションで説明するようにノートブックをエクスポートします。その後、通常の Jupyter 環境にノートブックをアップロードできます。
Jupyter ノートブックのエクスポート
Jupyter ノートブックを開くだけでなく、コマンド パレット (⇧⌘P (Windows、Linux Ctrl+Shift+P)) から次のいずれかのコマンドを使用して、VS Code の Python ファイルのコンテンツを Jupyter ノートブック (拡張子 .ipynb) にエクスポートすることもできます。
- Jupyter: 現在の Python ファイルを Jupyter ノートブックとしてエクスポート (Export Current Python File as Jupyter Notebook):
# %%および# %% [markdown]デリミタを使用してそれぞれのセル タイプを指定し、現在のファイルの内容から Jupyter ノートブックを作成します。 - Jupyter: 現在の Python ファイルと出力を Jupyter ノートブックとしてエクスポート (Export Current Python File and Output as Jupyter Notebook): 現在のファイルの内容から Jupyter ノートブックを作成し、コード セルからの出力も含めます。
- Jupyter: インタラクティブ ウィンドウを Jupyter ノートブックとしてエクスポート (Export Interactive Window as Jupyter Notebook): Python インタラクティブ ウィンドウの内容から Jupyter ノートブックを作成します。
コンテンツをエクスポートすると、VS Code にブラウザでノートブックを開くためのプロンプトが表示されます。