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

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

(Ctrl+Enter) またはPython: Python ターミナルで選択/行を実行コマンド (Shift+Enter) を使用してコードセルを実行することもできます。このコマンドを使用した後、Python 拡張機能は自動的にカーソルを次のセルに移動します。ファイル内の最後のセルにいる場合、拡張機能は新しいセルのために別の # %% 区切り文字を自動的に挿入し、Jupyter ノートブックの動作を模倣します。
行番号の左側の余白をクリックしてブレークポイントを設定することもできます。その後、セルをデバッグを使用して、そのコードセルのデバッグセッションを開始できます。デバッガーはブレークポイントで実行を停止し、コードを一度に 1 行ずつステップ実行して変数を検査できます (詳細についてはデバッグを参照)。
追加のコマンドとキーボードショートカット
次の表は、コードセルを操作する際にサポートされる追加のコマンドとキーボードショートカットを示しています。
| コマンド | キーボードショートカット |
|---|---|
| Python: 次のセルに移動 | Ctrl+Alt+] |
| Python: 前のセルに移動 | Ctrl+Alt+[ |
| Python: 上のセルで選択範囲を拡張 | Ctrl+Shift+Alt+[ |
| Python: 下のセルで選択範囲を拡張 | Ctrl+Shift+Alt+] |
| Python: 選択したセルを上に移動 | Ctrl+; U |
| Python: 選択したセルを下に移動 | Ctrl+; D |
| Python: 上にセルを挿入 | Ctrl+; A |
| Python: 下にセルを挿入 | Ctrl+; B |
| Python: 下の位置にセルを挿入 | Ctrl+; S |
| Python: 選択したセルを削除 | Ctrl+; X |
| Python: セルをコードに変更 | Ctrl+; C |
| Python: セルを Markdown に変更 | Ctrl+; M |
Python 対話型ウィンドウの使用
前のセクションで述べたPython 対話型ウィンドウは、任意のコード (コードセルがある場合でもない場合でも) を使用するスタンドアロンコンソールとして使用できます。このウィンドウをコンソールとして使用するには、コマンドパレットからJupyter: 対話型ウィンドウを作成コマンドで開きます。その後、コードを入力し、Enter で新しい行に移動し、Shift+Enter でコードを実行できます。
ファイルを伴ってウィンドウを使用するには、コマンドパレットからJupyter: Python 対話型ウィンドウで現在のファイルを実行コマンドを使用します。
IntelliSense
Python 対話型ウィンドウには、コード補完、メンバーリスト、メソッドのクイック情報、パラメーターヒントなど、完全な IntelliSense があります。コードエディターで行うのと同じように、Python 対話型ウィンドウで生産的に作業できます。

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

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

変数に関する追加情報については、行をダブルクリックするか、データビューアーで変数を表示ボタンを使用して、データビューアーで変数のより詳細なビューを表示することもできます。開くと、行を検索して値をフィルター処理できます。

リモートJupyterサーバーに接続する
リモート Jupyter サーバーに接続することで、Jupyter ノートブックでの集中的な計算を他のコンピューターにオフロードできます。接続すると、コードセルはローカルコンピューターではなくリモートサーバーで実行されます。
リモート Jupyter サーバーに接続するには
-
コマンドパレット (⇧⌘P (Windows, Linux Ctrl+Shift+P)) からJupyter: 接続用のローカルまたはリモート Jupyter サーバーを指定コマンドを実行します。
-
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 スクリプト」を選択し、数秒待つと、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 対話型ウィンドウで現在のファイルをデバッグコマンドを実行します。
- 個々のセルの場合は、セルの上に表示されるセルをデバッグ装飾を使用します。デバッガーは、そのセルのコードで具体的に開始されます。デフォルトでは、セルをデバッグはユーザーコードにのみステップインします。非ユーザーコードにステップインしたい場合は、Jupyter 拡張機能設定 (⌘, (Windows, Linux Ctrl+,)) でマイコードのみをデバッグのチェックを外す必要があります。
-
変数の検査、ブレークポイントの設定、その他のアクティビティなど、VS Code の一般的なデバッグ機能に慣れるには、VS Code のデバッグを確認してください。
-
問題が見つかったら、デバッガーを停止し、コードを修正し、ファイルを保存し、デバッガーを再度開始します。
-
すべてのコードが正しいと確信したら、ファイルを保存し、次のセクションで説明するようにノートブックをエクスポートします。その後、ノートブックを通常の Jupyter 環境にアップロードできます。
Jupyter ノートブックをエクスポートする
Jupyter ノートブックを開くことに加えて、コマンドパレット (⇧⌘P (Windows, Linux Ctrl+Shift+P)) から次のいずれかのコマンドを使用して、VS Code の Python ファイルから Jupyter ノートブック (.ipynb 拡張子付き) にコンテンツをエクスポートすることもできます。
- Jupyter: 現在の Python ファイルを Jupyter ノートブックとしてエクスポート: 現在のファイルの内容から Jupyter ノートブックを作成し、
# %%と# %% [markdown]区切り文字を使用してそれぞれのセルタイプを指定します。 - Jupyter: 現在の Python ファイルと出力を Jupyter ノートブックとしてエクスポート: 現在のファイルの内容から Jupyter ノートブックを作成し、コードセルからの出力を含めます。
- Jupyter: 対話型ウィンドウを Jupyter ノートブックとしてエクスポート: Python 対話型ウィンドウの内容から Jupyter ノートブックを作成します。
コンテンツをエクスポートした後、VS Code はブラウザでノートブックを開くことができるプロンプトを表示します。