Visual Studio での Python 対話型ウィンドウの使用
Visual Studio において各 Python 環境に用意されている対話型の read-evaluate-print loop (REPL) ウィンドウを使うと、コマンド ラインの python.exe
コマンドで実行する REPL が向上します。 Python インタラクティブ ウィンドウを使用すると、任意の Python コードを入力して、結果をすぐに確認できます。 このコーディング方法は、API とライブラリの学習と実習、およびプロジェクトに含める作業コードを対話形式で開発するのに役立ちます。
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 ウィンドウを使用する」を参照してください。
前提条件
- Python ワークロードをサポートする Visual Studio が Windows にインストールされていること。 詳細については、「Visual Studio での Python サポートのインストール」をご覧ください。
Visual Studio for Mac はサポートされていません。 詳細については、「Visual Studio for Mac の現状」を参照してください。Windows、Mac、および Linux での Visual Studio Code は、利用可能な拡張機能を使用して Python コードを問題なく操作できます。
インタラクティブ ウィンドウを開く
Python 環境のインタラクティブ ウィンドウを開くには、いくつかの方法があります。
[Python 環境] ウィンドウから次の手順を実行します。
[表示]>[その他のウィンドウ]>[Python 環境] を選択して、[Python 環境] ウィンドウを開きます (またはキーボードの Ctrl+K>Ctrl+` キーを使用します)。
[Python 環境] ウィンドウで、環境を選択し、環境の [概要] ページに切り替えます。
[概要] ページで、[インタラクティブ ウィンドウを開く] オプションを選択します。
Visual Studio ツールの [表示] メニューから、[その他のウィンドウ]>[Python インタラクティブ ウィンドウ] を選択します。
Visual Studio ツールバーの [デバッグ] メニューから、[Python Interactive で <プロジェクト | ファイル> を実行] を選択するか、キーボード ショートカット Shift+Alt+F5 キーを使用します。 プロジェクトのスタートアップ ファイルまたは任意のスタンドアロン ファイルに対して、対話型ウィンドウを開くことができます。
もう 1 つのオプションは、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 セッション中はいつでも、[モジュール スコープ] ドロップダウンを使用してスコープを変更できます。
import importlib
などのモジュールをインポートすると、そのモジュール内の任意のスコープに切り替えるためのオプションが [モジュール スコープ] ドロップダウン メニューに表示されます。 インタラクティブ ウィンドウのメッセージは、新しいスコープへの変更を報告するため、コマンド履歴を確認することで、セッション中に特定の状態にどのように到達したかを追跡できます。
スコープで dir()
コマンドを入力すると、Visual Studio に関数名、クラス、変数など、そのスコープで有効な識別子が表示されます。 次の図は、importlib
スコープの dir()
コマンドの結果を示しています。
インタラクティブ ウィンドウにコードを送信する
インタラクティブ ウィンドウ内で直接作業するだけでなく、Visual Studio エディターのコードをウィンドウに送信することもできます。 このコマンドは、開発しながらコードをテストするなど、反復的なまたは革新的なコードの開発に役立ちます。
Visual Studio エディターでコード ファイルを開き、コードの一部またはすべてを選択します。
選択したコードを右クリックし、[Interactive に送信] を選択します (または、キーボード ショートカット Ctrl+E、E キーを使用します)。
コードの変更と実行
インタラクティブ ウィンドウにコードを送信して出力を表示したら、コードを変更して変更をテストできます。 上矢印と下矢印を使用して、ウィンドウのコマンド履歴のコードまでスクロールします。 Ctrl+Enter キーを選択して、コードを変更し、更新されたコードを実行します。
変更を加えたときに、完全なコード ステートメントの最後に Enter キーを選択すると、Visual Studio によってコードが実行されます。 コード ステートメントが完全ではない場合、Visual Studio によってウィンドウに改行が挿入されます。
コードを保存してプロンプトを削除する
コードの作業が完了したら、インタラクティブ ウィンドウで更新されたコードを選択し、プロジェクト ファイルに貼り付けて作業内容を保存できます。
インタラクティブ ウィンドウからエディターにコードを貼り付けると、Visual Studio はデフォルトで REPL コマンド プロンプト >>>
と継続プロンプト ...
を削除します。 この動作により、ウィンドウからエディターにコードを簡単に転送できます。
インタラクティブ ウィンドウの [貼り付け時に REPL プロンプトを削除する] オプションを使用して、動作を変更できます。
[ツール]>[オプション] を選択して、[オプション] ダイアログを開きます。
[テキスト エディター]>[Python]>[書式設定] セクションを展開します。
[貼り付け時に REPL プロンプトを削除する] オプションをオフにします。
[ツール]>[オプション] を選択して、[オプション] ダイアログを開きます。
[テキスト エディター]>[Python]>[詳細設定] セクションを展開します。
[貼り付け時に REPL プロンプトを削除する] オプションをオフにします。
このオプションをオフにすると、プロンプト文字はウィンドウから貼り付けたコードに保持されます。 詳細については、「オプション - その他のオプション」をご覧ください。
IntelliSense の動作を確認する
コード エディターの IntelliSense がソース コードの分析のみに基づくのとは異なり、インタラクティブ ウィンドウに含まれる IntelliSense の候補はライブ オブジェクトに基づきます。 その結果、特に動的に生成されたコードの場合、インタラクティブ ウィンドウでの IntelliSense の候補がより正確になります。 欠点としては、副作用のある関数 (ログ メッセージなど) は、開発エクスペリエンスに影響を与える可能性があります。
Intellisense の動作は、補完オプションを使用して調整できます。
[ツール]>[オプション] を選択して、[オプション] ダイアログを開きます。
[Python]>[インタラクティブ ウィンドウ] セクションを展開します。
[常に式を評価しない] や [スタティック分析候補を非表示にする] など、[補完モード] グループの設定を調整します。
詳細については、「オプション - インタラクティブ ウィンドウ オプション」をご覧ください。