Python 対話型ウィンドウ
Jupyter (旧 IPython Notebook) は、Markdown テキストと実行可能な Python ソースコードをノートブックと呼ばれる単一のキャンバスで簡単に組み合わせることができるオープンソースプロジェクトです。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 はそのコードセルのみに適用されます。最初のセルに表示される Run Below は、ファイル内のすべてのコードを実行します。Run Above は、装飾のあるセルまで (ただし、そのセルは含まない) すべてのコードセルに適用されます。たとえば、特定のセルを実行する前にランタイム環境の状態を初期化するために Run Above を使用します。
コマンドを選択すると Jupyter が起動し (必要であれば、これには 1 分ほどかかる場合があります)、その後Python 対話型ウィンドウで適切なセルが実行されます。
コードセルは (Ctrl+Enter) を使用するか、Python: Run Selection/Line in Python Terminal コマンド (Shift+Enter) を使用して実行することもできます。このコマンドを使用すると、Python 拡張機能は自動的にカーソルを次のセルに移動します。ファイル内の最後のセルにいる場合、拡張機能は新しいセル用に別の # %%
区切り文字を自動的に挿入し、Jupyter ノートブックの動作を模倣します。
行番号の左側の余白をクリックしてブレークポイントを設定することもできます。その後、Debug Cell を使用して、そのコードセルのデバッグセッションを開始できます。デバッガーはブレークポイントで実行を停止し、コードを一度に 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: Create Interactive Window コマンドで開きます。その後、Enter で新しい行に移動し、Shift+Enter でコードを実行して、コードを入力できます。
ファイルでこのウィンドウを使用するには、コマンドパレットから Jupyter: 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: Specify local or remote Jupyter server for connections コマンドを実行します。
-
Jupyter サーバーへの接続方法を選択します。
-
リモートで作業する場合、プロンプトが表示されたら、
?token=
URL パラメーターを含めて認証トークン付きのサーバー URI (ホスト名) を指定します。(VS Code ターミナルで認証トークンを有効にしてサーバーを起動した場合、トークン付きの URL は通常、ターミナル出力に表示され、そこからコピーできます。) あるいは、URI を指定した後でユーザー名とパスワードを指定することもできます。 -
Python 対話型ウィンドウは、URI を表示することでコードがどこで実行されているかを示します (下の画像ではぼかされています)。
注: セキュリティを強化するために、Microsoft は Jupyter サーバーを SSL やトークンサポートなどのセキュリティ対策で構成することをお勧めします。これにより、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: 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: Export Current Python File as Jupyter Notebook: 現在のファイルの内容から Jupyter ノートブックを作成します。
# %%
と# %% [markdown]
の区切り文字を使用して、それぞれのセルタイプを指定します。 - Jupyter: Export Current Python File and Output as Jupyter Notebook: 現在のファイルの内容から Jupyter ノートブックを作成し、コードセルからの出力を含めます。
- Jupyter: Export Interactive Window as Jupyter Notebook: Python 対話型ウィンドウの内容から Jupyter ノートブックを作成します。
コンテンツをエクスポートした後、VS Code はノートブックをブラウザーで開くことができるプロンプトを表示します。