Python インタラクティブ ウィンドウ
Jupyter (以前の IPython Notebook) は、Markdown テキストと実行可能な Python ソース コードを ノートブック と呼ばれる 1 つのキャンバス上で簡単に組み合わせることができるオープンソース プロジェクトです。Visual Studio Code は、Jupyter Notebook をネイティブに、および Python コード ファイルを通じて操作することをサポートしています。このトピックでは、Python コード ファイルを通じて提供されるサポートについて説明し、次の方法を示します。
- Jupyter のようなコード セルの操作
- Python インタラクティブ ウィンドウでのコードの実行
- 変数エクスプローラーとデータ ビューアーを使用した変数の表示、検査、およびフィルター処理
- リモート Jupyter サーバーへの接続
- Jupyter Notebook のデバッグ
- Jupyter Notebook のエクスポート
Jupyter Notebook を操作するには、VS Code で Anaconda 環境、または Jupyter パッケージ がインストールされている別の Python 環境をアクティブ化する必要があります。環境を選択するには、コマンド パレットから [Python: インタープリターの選択] コマンドを使用します (⇧⌘P (Windows、Linux Ctrl+Shift+P))。
適切な環境がアクティブ化されると、Jupyter のようなコード セルを作成して実行したり、コード セルを実行するためにリモート Jupyter サーバーに接続したり、Python ファイルを Jupyter Notebook としてエクスポートしたりできます。
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 Notebook の動作を模倣します。
行番号の左側の余白をクリックしてブレークポイントを設定することもできます。次に、[セルのデバッグ] を使用して、そのコード セルのデバッグ セッションを開始できます。デバッガーは、ブレークポイントで実行を停止し、コードを 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 Notebook での集中的な計算を他のコンピューターにオフロードできます。接続すると、コード セルはローカル コンピューターではなくリモート サーバーで実行されます。
リモート Jupyter サーバーに接続するには
-
コマンド パレットから [Jupyter: ローカルまたはリモート Jupyter サーバーを接続用に指定] コマンドを実行します (⇧⌘P (Windows、Linux Ctrl+Shift+P))。
-
Jupyter サーバーに接続する方法を選択します。
-
リモートで作業している場合は、プロンプトが表示されたら、
?token=
URL パラメーターに含まれる認証トークンを使用して、サーバーの URI (ホスト名) を指定します。(VS Code ターミナルで認証トークンを有効にしてサーバーを起動すると、トークン付きの URL が通常ターミナル出力に表示され、そこからコピーできます。) または、URI を指定した後でユーザー名とパスワードを指定することもできます。 -
Python インタラクティブ ウィンドウは、URI を表示することでコードが実行される場所を示します (下の画像ではぼかしが入っています)
注: セキュリティを強化するために、Microsoft は、SSL やトークン サポートなどのセキュリティ対策を講じて Jupyter サーバーを構成することを推奨しています。これは、Jupyter サーバーに送信される要求が認証され、リモート サーバーへの接続が暗号化されることを保証するのに役立ちます。Notebook サーバーのセキュリティ保護に関するガイダンスについては、Jupyter ドキュメント を参照してください。
Jupyter Notebook を Python コード ファイルに変換する
Jupyter がインストールされた環境をアクティブ化したら、VS Code で Jupyter Notebook ファイル (.ipynb
) を開き、Python コードに変換できます。ファイルを変換したら、他の Python ファイルと同様にコードを実行したり、VS Code デバッガーを使用したりできます。VS Code で Notebook を開いてデバッグすることは、Jupyter Notebook で直接行うのが難しいコード バグを見つけて解決するのに便利な方法です。
Notebook ファイルを開くと、Visual Studio Code は Notebook エディターで自動的に開きます。ツールバーの変換アイコンを使用して、Notebook (.ipynb) ファイルを Python ファイル (.py) に変換します。
変換アイコンを選択し、次に [Python スクリプト] を選択し、数秒待つと、VS Code は変換された Notebook を untitled ファイルで開きます。Notebook のセルは、Python ファイルでは # %%
コメントで区切られています。Markdown セルは、# %% [markdown]
が前に付いたコメントに完全に変換され、グラフなどのコードや出力とともにインタラクティブ ウィンドウに HTML としてレンダリングされます
注: Python ファイルでコード セルを初めて実行すると、Python 拡張機能は Jupyter サーバーを起動します。サーバーの起動と、Python インタラクティブ ウィンドウにコードの結果が表示されるまでに時間がかかる場合があります。
Jupyter Notebook のデバッグ
Visual Studio Code デバッガーを使用すると、コードをステップ実行したり、ブレークポイントを設定したり、状態を調べたり、問題を分析したりできます。デバッガーを使用することは、Notebook コードの問題を見つけて修正するのに役立ちます。
-
VS Code で、この記事の冒頭で説明したように、Jupyter がインストールされている Python 環境をアクティブ化します。
-
前のセクションで説明したように、Notebook の
.ipynb
ファイルを VS Code にインポートします。(クラウドベースの Jupyter 環境 (例: Azure Notebooks) を使用している場合は、最初にファイルをダウンロードします。) -
デバッガーを起動するには、次のいずれかのオプションを使用します
- Notebook 全体の場合、コマンド パレット (⇧⌘P (Windows、Linux Ctrl+Shift+P)) を開き、[Jupyter: Python インタラクティブ ウィンドウで現在のファイルをデバッグ] コマンドを実行します。
- 個々のセルについては、セル上に表示される [セルのデバッグ] 装飾を使用します。デバッガーは、特にそのセルのコードで起動します。既定では、[セルのデバッグ] はユーザー コードのみをステップインします。ユーザー以外のコードにステップインする場合は、Jupyter 拡張機能の設定で [自分のコードのみをデバッグ] をオフにする必要があります (⌘, (Windows、Linux Ctrl+,))。
-
変数の検査、ブレークポイントの設定、その他のアクティビティなど、VS Code の一般的なデバッグ機能に慣れるには、VS Code デバッグ を確認してください。
-
問題が見つかったら、デバッガーを停止し、コードを修正し、ファイルを保存して、デバッガーを再度起動します。
-
すべてのコードが正しいことに満足したら。ファイルを保存し、次のセクションで説明するように Notebook をエクスポートします。その後、Notebook を通常の Jupyter 環境にアップロードできます。
Jupyter Notebook のエクスポート
Jupyter Notebook を開くことに加えて、コマンド パレット (⇧⌘P (Windows、Linux Ctrl+Shift+P)) から次のいずれかのコマンドを使用して、VS Code の Python ファイルから Jupyter Notebook (.ipynb
拡張子付き) にコンテンツをエクスポートすることもできます。
- [Jupyter: 現在の Python ファイルを Jupyter Notebook としてエクスポート]: 現在のファイルの内容から Jupyter Notebook を作成し、
# %%
および# %% [markdown]
区切り記号を使用してそれぞれのセル タイプを指定します。 - [Jupyter: 現在の Python ファイルと出力を Jupyter Notebook としてエクスポート]: 現在のファイルの内容から Jupyter Notebook を作成し、コード セルからの出力を含めます。
- [Jupyter: インタラクティブ ウィンドウを Jupyter Notebook としてエクスポート]: Python インタラクティブ ウィンドウの内容から Jupyter Notebook を作成します。
コンテンツをエクスポートすると、VS Code はブラウザーで Notebook を開くことができるプロンプトを表示します。