Python 対話型ウィンドウ
Jupyter (旧 IPython Notebook) は、Markdown テキストと実行可能な Python ソースコードをノートブックと呼ばれる 1 つのキャンバスに簡単に組み合わせることができるオープンソースプロジェクトです。Visual Studio Code は、ネイティブでの Jupyter Notebooks の操作だけでなく、Python コードファイルを通じた操作もサポートしています。このトピックでは、Python コードファイルを通じて提供されるサポートについて説明し、その方法を示します。
- Jupyter のようなコードセルを操作する
- Python 対話型ウィンドウでコードを実行する
- 変数エクスプローラーとデータビューアーを使用して変数を表示、検査、フィルター処理する
- リモートJupyterサーバーに接続する
- Jupyter Notebook をデバッグする
- Jupyter Notebook をエクスポートする
Jupyter Notebook を使用するには、VS Code で Anaconda 環境をアクティブにするか、Jupyter パッケージをインストールした別の Python 環境をアクティブにする必要があります。環境を選択するには、コマンド パレット (⇧⌘P (Windows, Linux Ctrl+Shift+P)) から Python: Select Interpreter コマンドを使用します。
適切な環境がアクティブになると、Jupyter のようなコードセルの作成と実行、コードセルを実行するためのリモート Jupyter サーバーへの接続、Python ファイルの Jupyter Notebook としてのエクスポートが可能になります。
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 Interactive ウィンドウで適切なセルが実行されます。
コードセルは (Ctrl+Enter) または Python: Run Selection/Line in Python Terminal コマンド (Shift+Enter) を使用して実行することもできます。このコマンドを使用すると、Python 拡張機能はカーソルを自動的に次のセルに移動します。ファイル内の最後のセルにいる場合、拡張機能は Jupyter Notebook の動作を模倣して、新しいセル用に別の # %%
区切り文字を自動的に挿入します。
行番号の左側のマージンをクリックしてブレークポイントを設定することもできます。その後、[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: Change Cell to Markdown (セルを Markdown に変更) | Ctrl+; M |
Python 対話型ウィンドウの使用
前のセクションで述べた Python Interactive ウィンドウは、任意のコード (コードセルの有無にかかわらず) を使用できるスタンドアロンのコンソールとして使用できます。ウィンドウをコンソールとして使用するには、コマンドパレットから Jupyter: Create Interactive Window コマンドで開きます。その後、コードを入力し、Enter キーで新しい行に移動し、Shift+Enter キーでコードを実行できます。
ファイルでウィンドウを使用するには、コマンドパレットから Jupyter: Run Current File in Python Interactive Window コマンドを使用します。
IntelliSense
Python Interactive ウィンドウは、コード補完、メンバーリスト、メソッドのクイック情報、パラメーターヒントなど、完全な IntelliSense を備えています。コードエディターで入力するのと同じように、Python Interactive ウィンドウでも生産性を高めることができます。
プロットビューアー
プロットビューアーを使用すると、プロットをより深く操作できます。ビューアーでは、現在のセッション内のプロットをパン、ズーム、ナビゲートできます。また、プロットを PDF、SVG、PNG 形式にエクスポートすることもできます。
Python Interactive ウィンドウ内で、プロットをダブルクリックするか、プロットの左上隅にある展開ボタンを選択して、ビューアーで開きます。
注: Python Interactive ウィンドウは、matplotlib および Altair で作成されたプロットのレンダリングをサポートしています。
変数エクスプローラーとデータビューアー
Python Interactive ウィンドウ内では、現在の Jupyter セッション内の変数を表示、検査、フィルター処理することができます。コードとセルを実行した後、インタラクティブ ウィンドウのツールバーにある [Variables] (変数) ボタンを選択して変数エクスプローラーを開くと、現在の変数のリストが表示され、コードで変数が使用されるたびに自動的に更新されます。
変数の詳細情報を表示するには、行をダブルクリックするか、[Show variable in data viewer] (データビューアーで変数を表示) ボタンを使用して、データビューアーで変数のより詳細なビューを表示することもできます。開いたら、行を検索して値をフィルター処理できます。
リモートJupyterサーバーに接続する
リモート Jupyter サーバーに接続することで、Jupyter Notebook の負荷の高い計算を他のコンピューターにオフロードできます。接続すると、コードセルはローカルコンピューターではなくリモートサーバーで実行されます。
リモート 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 Interactive ウィンドウには、URI を表示することでコードが実行されている場所が示されます (下の画像ではぼかされています)。
注: セキュリティを強化するため、Microsoft は SSL やトークンサポートなどのセキュリティ対策を講じて Jupyter サーバーを構成することをお勧めします。これにより、Jupyter サーバーに送信されるリクエストが認証され、リモートサーバーへの接続が暗号化されるようになります。ノートブックサーバーのセキュリティ保護に関するガイダンスについては、Jupyter のドキュメントを参照してください。
Jupyter Notebook を Python コードファイルに変換する
Jupyter がインストールされた環境をアクティブにすると、VS Code で Jupyter Notebook ファイル (.ipynb
) を開き、それを Python コードに変換できます。ファイルを変換すると、他の Python ファイルと同様にコードを実行でき、VS Code デバッガーも使用できます。VS Code でノートブックを開いてデバッグすることは、Jupyter Notebook で直接行うのが難しいコードのバグを見つけて解決するのに便利な方法です。
ノートブックファイルを開くと、Visual Studio Code は自動的にノートブックエディターでそれを開きます。ツールバーの変換アイコンを使用して、ノートブック (.ipynb) ファイルを Python ファイル (.py) に変換します。
変換アイコンを選択し、続いて「Python Script」を選択します。数秒待つと、VS Code は変換されたノートブックを無題のファイルで開きます。ノートブックのセルは Python ファイル内で # %%
コメントで区切られます。Markdown セルは完全に # %% [markdown]
が前に付いたコメントに変換され、インタラクティブウィンドウではグラフなどのコードや出力とともに HTML としてレンダリングされます。
注: Python ファイルで初めてコードセルを実行すると、Python 拡張機能は Jupyter サーバーを起動します。サーバーが起動し、Python Interactive ウィンドウにコードの結果が表示されるまでに時間がかかる場合があります。
Jupyter Notebook をデバッグする
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 Notebook をエクスポートする
Jupyter Notebook を開くことに加えて、コマンドパレット (⇧⌘P (Windows, Linux Ctrl+Shift+P)) から次のいずれかのコマンドを使用して、VS Code の Python ファイルから Jupyter Notebook (.ipynb
拡張子付き) にコンテンツをエクスポートすることもできます。
- Jupyter: Export Current Python File as Jupyter Notebook:
# %%
と# %% [markdown]
の区切り文字を使用してそれぞれのセルタイプを指定し、現在のファイルの内容から Jupyter Notebook を作成します。 - Jupyter: Export Current Python File and Output as Jupyter Notebook: 現在のファイルの内容から Jupyter Notebook を作成し、コードセルの出力を含めます。
- Jupyter: Export Interactive Window as Jupyter Notebook: Python Interactive ウィンドウの内容から Jupyter Notebook を作成します。
コンテンツをエクスポートした後、VS Code はブラウザーでノートブックを開くことができるプロンプトを表示します。