Visual Studio での Python 対話型ウィンドウの使用

Visual Studio において各 Python 環境に用意されている対話型の read-evaluate-print loop (REPL) ウィンドウを使うと、コマンド ラインの python.exe コマンドで実行する REPL が向上します。 Python インタラクティブ ウィンドウを使用すると、任意の Python コードを入力して、結果をすぐに確認できます。 このコーディング方法は、API とライブラリの学習と実習、およびプロジェクトに含める作業コードを対話形式で開発するのに役立ちます。

Visual Studio 2022 の Python 対話型 read-evaluate-print loop (REPL) ウィンドウを示すスクリーンショット。

Visual Studio の Python 対話型 read-evaluate-print loop (REPL) ウィンドウを示すスクリーンショット。

Visual Studio では、多数の Python REPL モードから選ぶことができます。

REPL 説明 編集 デバッグ イメージ
Standard 既定の REPL は Python と直接対話します 標準的な編集 (複数行など) はい、$attach を使用 いいえ
デバッグ 既定の REPL はデバッグ対象の Python プロセスと対話します 標準的な編集 デバッグのみ いいえ
IPython REPL は IPython のバックエンドと対話 IPython コマンド、Pylab の利便性 いいえ はい、REPL でインライン
Pylab なしの IPython REPL は IPython のバックエンドと対話 標準的な IPython いいえ はい、別のウィンドウ

この記事では、REPL の標準モードとデバッグ モードについて説明します。 IPython モードについて詳しくは、IPython REPL の使用に関するページをご覧ください。

Ctrl+Enter などのエディターとのやりとりを含む、例を使用した詳細なチュートリアルについては、「対話型 REPL ウィンドウを使用する」を参照してください。

前提条件

Visual Studio for Mac は現在サポートされていません。 詳細については、「Visual Studio for Mac の現状」を参照してください。Windows、Mac、および Linux での Visual Studio Code は、利用可能な拡張機能を使用して Python コードを問題なく操作できます

インタラクティブ ウィンドウを開く

Python 環境のインタラクティブ ウィンドウを開くには、いくつかの方法があります。

  • [Python 環境] ウィンドウから次の手順を実行します。

    1. [表示]>[その他のウィンドウ]>[Python 環境] を選択して、[Python 環境] ウィンドウを開きます (またはキーボードの Ctrl+K>Ctrl+` キーを使用します)。

    2. [Python 環境] ウィンドウで、環境を選択し、環境の [概要] ページに切り替えます。

    3. [概要] ページで、[インタラクティブ ウィンドウを開く] オプションを選択します。

    Visual Studio 2022 の選択した環境で [インタラクティブ ウィンドウを開く] オプションを使用する方法を示すスクリーンショット。

    Visual Studio の選択した環境で [インタラクティブ ウィンドウを開く] オプションを使用する方法を示すスクリーンショット。

  • Visual Studio ツールの [表示] メニューから、[その他のウィンドウ]>[Python インタラクティブ ウィンドウ] を選択します。

    Visual Studio 2022 の [Python インタラクティブ ウィンドウの表示] メニュー オプションの使用方法を示すスクリーンショット。

    Visual Studio の [Python インタラクティブ ウィンドウの表示] メニュー オプションの使用方法を示すスクリーンショット。

  • Visual Studio ツールバーの [デバッグ] メニューから、[Python Interactive で <プロジェクト | ファイル> を実行] を選択するか、キーボード ショートカット Shift+Alt+F5 キーを使用します。 プロジェクト内のスタートアップ ファイルまたは任意のスタンドアロン ファイルのインタラクティブ ウィンドウを開くことができます。

    Visual Studio 2022 の [Python Interactive でプロジェクトの実行をデバッグする] メニュー オプションを使用する方法を示すスクリーンショット。

    Visual Studio の [Python Interactive でプロジェクトの実行をデバッグする] メニュー オプションを使用する方法を示すスクリーンショット。

もう 1 つのオプションは、Visual Studio エディターで記述しているコードをインタラクティブ ウィンドウに送信することです。 この方法については、「インタラクティブ ウィンドウにコードを送信する」で説明されています。

インタラクティブ ウィンドウのオプションについて詳しく知る

スタートアップ スクリプト ファイルの場所やウィンドウ環境内での方向キーの動作など、インタラクティブ ウィンドウのさまざまな側面を制御できます。 オプションにアクセスするには、[ツール]>[オプション]>[Python]>[インタラクティブ ウィンドウ] を選択します。

Visual Studio の Python インタラクティブ ウィンドウのオプションのスクリーンショット。

オプションの詳細については、「Visual Studio の Python インタラクティブ ウィンドウのオプション」で説明されています。

インタラクティブ ウィンドウの使用

インタラクティブ ウィンドウでは、REPL Python コマンド プロンプト >>> でコードを 1 行ずつ入力し始めることができます。 各行を入力すると、必要なモジュールのインポートや変数の定義など、Visual Studio によってコードが実行されます。

コード行が完全なステートメントを形成していないことを Visual Studio が検出すると、コード プロンプトが REPL 継続 ... に変更されます。 このプロンプトは、ステートメント ブロックを完了するために、さらに多くのコード行を入力する必要があることを示します。 Visual Studio は、終了構文を待機してから、コード ブロックの実行を試みます。

for ステートメントを定義すると、最初のコード行が for ブロックを開始し、コロンで終了します。 ブロックは、for ループ中に完了するタスクを定義する 1 行以上のコードで構成できます。 空白行で Enter キーを選択すると、インタラクティブ ウィンドウがブロックを終了し、Visual Studio がコードを実行します。

コマンド ライン REPL の比較

インタラクティブ ウィンドウは、囲むスコープに属しているステートメントを自動的にインデントすることにより、Python の通常のコマンドライン REPL エクスペリエンスを向上させます。 どちらの方法でも、方向キーを使用して、入力したコードをスクロールできます。 インタラクティブ ウィンドウは複数行の項目も提供しますが、コマンドライン REPL は単一行しか提供しません。

メタコマンド

インタラクティブ ウィンドウは複数のメタコマンドをサポートします。 すべてのメタコマンドはドル記号 $ で始まります。 「$help」と入力するとメタコマンドが一覧表示され、「$help <command>」と入力すると特定のコマンドの使用法の詳細が表示されます。 次の表は、メタコマンドの概要です。

メタコマンド 説明
$$ コメントを挿入します。セッションのコードにコメントを追加するのに役立ちます。
$cls$clear エディター ウィンドウの内容を消去し、履歴と実行コンテキストはそのまま維持します。
$help コマンドの一覧または特定のコマンドのヘルプを表示します。
$load ファイルからコマンドを読み込み、完了するまで実行します。
$mod 現在のスコープを指定されたモジュール名に切り替えます。
$reset 実行環境を初期状態にリセットしますが、履歴は保持します。
$wait 少なくとも指定されたミリ秒数だけ待機します。

IInteractiveWindowCommand クラスを実装してエクスポートすることで、Visual Studio 拡張機能を使用してコマンドを拡張することもできます。 詳細については、(GitHub の例) を参照してください。

インタラクティブ ウィンドウのスコープを切り替える

既定では、プロジェクトのインタラクティブ ウィンドウのスコープは、コマンド プロンプトからプログラム ファイルを実行した場合のように、プロジェクトのスタートアップ ファイルに設定されます。 スタンドアロン ファイルの場合、スコープはそのファイルに設定されます。 REPL セッション中はいつでも、[モジュール スコープ] ドロップダウンを使用してスコープを変更できます。

Visual Studio 2022 のインタラクティブ ウィンドウで [モジュール スコープ] ドロップダウン メニューを使用してスコープを変更する方法を示すスクリーンショット。

インタラクティブ ウィンドウで [モジュール スコープ] ドロップダウン メニューを使用してスコープを変更する方法を示すスクリーンショット。

import importlib などのモジュールをインポートすると、そのモジュール内の任意のスコープに切り替えるためのオプションが [モジュール スコープ] ドロップダウン メニューに表示されます。 インタラクティブ ウィンドウのメッセージは、新しいスコープへの変更を報告するため、コマンド履歴を確認することで、セッション中に特定の状態にどのように到達したかを追跡できます。

スコープで dir() コマンドを入力すると、Visual Studio に関数名、クラス、変数など、そのスコープで有効な識別子が表示されます。 次の図は、importlib スコープの dir() コマンドの結果を示しています。

Visual Studio 2022 の importlib スコープのインタラクティブ ウィンドウの出力を示すスクリーンショット。

importlib スコープのインタラクティブ ウィンドウの出力を示すスクリーンショット。

インタラクティブ ウィンドウにコードを送信する

インタラクティブ ウィンドウ内で直接作業するだけでなく、Visual Studio エディターのコードをウィンドウに送信することもできます。 このコマンドは、開発しながらコードをテストするなど、反復的なまたは革新的なコードの開発に役立ちます。

  1. Visual Studio エディターでコード ファイルを開き、コードの一部またはすべてを選択します。

  2. 選択したコードを右クリックし、[Interactive に送信] を選択します (または、キーボード ショートカット Ctrl+EE キーを使用します)。

    Visual Studio 2022 で [Interactive に送信] メニュー オプションを使用する方法を示すスクリーンショット。

    Visual Studio で [Interactive に送信] メニュー オプションを使用する方法を示すスクリーンショット。

コードの変更と実行

インタラクティブ ウィンドウにコードを送信して出力を表示したら、コードを変更して変更をテストできます。 上矢印と下矢印を使用して、ウィンドウのコマンド履歴のコードまでスクロールします。 Ctrl+Enter キーを選択して、コードを変更し、更新されたコードを実行します。

変更を加えたときに、完全なコード ステートメントの最後に Enter キーを選択すると、Visual Studio によってコードが実行されます。 コード ステートメントが完全ではない場合、Visual Studio によってウィンドウに改行が挿入されます。

コードを保存してプロンプトを削除する

コードの作業が完了したら、インタラクティブ ウィンドウで更新されたコードを選択し、プロジェクト ファイルに貼り付けて作業内容を保存できます。

インタラクティブ ウィンドウからエディターにコードを貼り付けると、Visual Studio はデフォルトで REPL コマンド プロンプト >>> と継続プロンプト ... を削除します。 この動作により、ウィンドウからエディターにコードを簡単に転送できます。

インタラクティブ ウィンドウ[貼り付け時に REPL プロンプトを削除する] オプションを使用して、動作を変更できます。

  1. [ツール]>[オプション] を選択して、[オプション] ダイアログを開きます。

  2. [テキスト エディター]>[Python]>[書式設定] セクションを展開します。

  3. [貼り付け時に REPL プロンプトを削除する] オプションをオフにします。

  1. [ツール]>[オプション] を選択して、[オプション] ダイアログを開きます。

  2. [テキスト エディター]>[Python]>[詳細設定] セクションを展開します。

  3. [貼り付け時に REPL プロンプトを削除する] オプションをオフにします。

このオプションをオフにすると、プロンプト文字はウィンドウから貼り付けたコードに保持されます。 詳細については、「オプション - その他のオプション」をご覧ください。

IntelliSense の動作を確認する

コード エディターの IntelliSense がソース コードの分析のみに基づくのとは異なり、インタラクティブ ウィンドウに含まれる IntelliSense の候補はライブ オブジェクトに基づきます。 その結果、特に動的に生成されたコードの場合、インタラクティブ ウィンドウでの IntelliSense の候補がより正確になります。 欠点としては、副作用のある関数 (ログ メッセージなど) は、開発エクスペリエンスに影響を与える可能性があります。

Intellisense の動作は、完了オプションを使用して調整できます。

  1. [ツール]>[オプション] を選択して、[オプション] ダイアログを開きます。

  2. [Python]>[インタラクティブ ウィンドウ] セクションを展開します。

  3. [常に式を評価しない][スタティック分析候補を非表示にする] など、[完了モード] グループの設定を調整します。

詳細については、「オプション - インタラクティブ ウィンドウ オプション」をご覧ください。