Python コードのデバッグDebugging Your Python Code

Visual Studio は、実行中のプロセスへのアタッチ、ウォッチ ウィンドウやイミディエイト ウィンドウでの式の評価、ローカル変数の調査、ブレークポイントの設定、ステートメントのステップ イン/ステップ アウト/ステップ オーバー、次のステートメントの設定など、Python 向けの総合的なデバッグ機能を提供します。Visual Studio provides a comprehensive debugging experience for Python, including attaching to running processes, evaluating expressions in the Watch and Immediate windows, inspecting local variables, breakpoints, step in/out/over statements, Set Next Statement, and more.

デバッグの概要については、「Debugging Python (Python のデバッグ)」 (Microsoft Virtual Academy、3 分 32 秒) をご覧ください。For a debugging overview, see Debugging Python (Microsoft Virtual Academy, 3m32s).

このトピックの内容In this topic:

シナリオ固有のデバッグに関する次のトピックも参照してください。Also see the following scenario-specific debugging topics:

ヒント

Visual Studio の Python は、プロジェクトを使用しないデバッグをサポートしています。Python in Visual Studio supports debugging without a project. スタンドアロンの Python ファイルを開き、エディター内で右クリックして、[デバッグの開始] を選択すると、Visual Studio がグローバルな既定の環境 (「Python Environments」 (Python 環境) を参照) を使用して、引数なしでスクリプトを起動します。With a stand-alone Python file open, right-click in the editor, select Start with Debugging, and Visual Studio launches the script with the global default environment (see Python Environments) and no arguments. ただし、それ以降は、フル機能のデバッグ サポートが提供されます。But from then on, you have full debugging support.

環境と引数を制御するには、コードのプロジェクトを作成します。プロジェクトは、[既存の Python コードから] プロジェクト テンプレートを使用して簡単に作成できます。To control the environment and arguments, create a project for the code, which is easily done with the From Existing Python Code project template.

デバッグの基本Basic debugging

デバッグの基本的なワークフローには、ブレークポイントの設定、コードのステップ実行、値の検査、例外の処理が含まれます。これらについては、後続のセクションで説明します。The basic debugging workflow involves settings breakpoints, stepping through code, inspecting values, and handling exceptions as described in the following sections. Visual Studio のデバッガーについて詳しくは、「Debugging in Visual Studio (Visual Studio でのデバッグ)」を参照してください。For complete details on the Visual Studio debugger, see Debugging in Visual Studio.

デバッグ セッションを開始するには、[デバッグ] > [デバッグの開始] コマンド、ツールバーの [開始] ボタン、または F5 キーを使用します。A debugging session starts with the Debug > Start Debugging command, the Start button on the toolbar, or the F5 key. これらの操作で、プロジェクトのアクティブな環境と、プロジェクトのプロパティで指定されているコマンドライン引数や検索パスを使用して、プロジェクトのスタートアップ ファイル (ソリューション エクスプローラーで太字で表示) が起動します (「プロジェクトのデバッグ オプション」を参照してください)。These actions launch your project's startup file (shown in bold in Solution Explorer) with the project's active environment and any command-line arguments or search paths that have been specified in Project Properties (see Project debugging options. ただし、何らかの理由でスタートアップ ファイルが設定されていない場合は、Python の出力ウィンドウが一瞬表示されてから消えます。If for some reason you don't have a startup file set, however, a Python output window briefly appears and disappears. その場合は、適切なファイルを右クリックして、[スタートアップ ファイルとして設定] を選びます。In this case, right-click the appropriate file and select Set as Startup File.

注意

デバッガーは常に、プロジェクトのアクティブな Python 環境で起動します。The debugger always starts with the active Python environment for the project. 環境を変更するには、「Python Environments (Python 環境)」の説明に従って、別の環境をアクティブにします。To change the environment, make a different one active as described on Python Environments.

ブレークポイントBreakpoints

ブレークポイントを設定すると、マークしたポイントでコードの実行が停止するので、プログラムの状態を確認することができます。Breakpoints stop execution of code at a marked point so you can inspect the program state. ブレークポイントを設定するには、コード エディターの左端の余白をクリックするか、コード行を右クリックして [ブレークポイント] > [ブレークポイントの挿入] を選択します。Set breakpoints by clicking in the left margin of the code editor or by right-clicking a line of code and selecting Breakpoint > Insert Breakpoint. ブレークポイントが設定された行には赤い点が表示されます。A red dot appears on each line with a breakpoint.

Visual Studio でのブレークポイント

赤い点をクリックするか、コード行を右クリックして [ブレークポイント] > [ブレークポイントの削除] を選択すると、ブレークポイントが削除されます。Clicking the red dot or right-clicking the line of code and selecting Breakpoint > Delete Breakpoint removes the breakpoint. [ブレークポイント] > [ブレークポイントの無効化] コマンドを使用して、ブレークポイントを削除せずに無効にすることもできます。You can also disable it without removing it using the Breakpoint > Disable Breakpoint command.

注意

他のプログラミング言語を使用してきた開発者の場合、Python の一部のブレークポイントに驚く可能性があります。Some breakpoints in Python can be surprising for developers who have worked with other programming languages. Python では、ファイル全体が実行可能コードであるため、最上位のクラスまたは関数定義を処理するためにファイルが読み込まれたときに、そのファイルが実行されます。In Python, the entire file is executable code, so Python runs the file when it's loaded to process any top-level class or function definitions. ブレークポイントが設定されていると、クラス宣言の途中でデバッガーが中断されることがあります。If a breakpoint has been set, you may find the debugger breaking part-way through a class declaration. 驚くかもしれませんが、これは正常な動作です。This behavior the correct, even though it's sometimes surprising.

ブレークポイントをトリガーする条件は、カスタマイズすることができます。たとえば、変数が特定の値または値の範囲に設定されたときにのみ中断するなどです。You can customize the conditions under which a breakpoint is triggered, such as breaking only when a variable is set to a certain value or value range. 条件を設定するには、ブレークポイントの赤い点を右クリックして [条件] を選択し、Python コードを使用して式を作成します。To set conditions, right-click the breakpoint's red dot, select Condition, then create expressions using Python code. Visual Studio のこの機能の詳細については、「Breakpoint conditions (ブレークポイント条件)」を参照してください。For full details on this feature in Visual Studio, see Breakpoint conditions

条件を設定するときに、[アクション] も設定することができます。出力ウィンドウに表示するメッセージを作成し、必要に応じて自動で実行を継続できます。When setting conditions, you can also set Action and create a message to log to the output window, optionally continuing execution automatically. メッセージをログに記録すると、ログ コードを直接アプリケーションに導入しなくても、トレースポイントが作成されます。Logging a message creates what is called a tracepoint without adding logging code to your application directly:

ブレークポイントでのトレースポイントの作成

コードのステップ実行Stepping through code

ブレークポイントで停止したら、次に再び停止するまで、コードをさまざまな方法でステップ実行したり、コードのブロックを実行したりできます。Once stopped at a breakpoint, you have various ways to step through code or run blocks of code before breaking again. これらのコマンドは、上部の [デバッグ] ツールバー、[デバッグ] メニュー、コード エディターの右クリック コンテキスト メニュー、ショートカット キーなど、さまざまな場所から利用できます (すべての場所ですべてのコマンドを利用できるわけではありません)。These commands are available in a number of places, including the top debug toolbar, the Debug menu, on the right-click context menu in the code editor, and through keyboard shortcuts (through not all commands are in all places):

特性Feature キー操作Keystroke 説明Description
[続行]Continue F5F5 次のブレークポイントに到達するまでコードを実行します。Runs code until the next breakpoint is reached.
[ステップ イン]Step Into F11F11 次のステートメントを実行して停止します。Runs the next statement and stops. 次のステートメントが関数の呼び出しの場合、呼び出されている関数の最初の行でデバッガーが停止します。If the next statement is a call to a function, the debugger stops at the first line of the function being called.
[ステップ オーバー]Step Over F10F10 次のステートメントを関数の呼び出しを含めて実行 (すべてのコードを実行) し、戻り値をすべて適用します。Runs the next statement, including making a call to a function (running all its code) and applying any return value. ステップ オーバーでは、デバッグする必要のない関数を簡単にスキップすることができます。Stepping over allows you to easily skip functions that you do not need to debug.
[ステップ アウト]Step Out Shift + F11Shift+F11 現在の関数の終わりまでコードを実行し、呼び出し元のステートメントに戻ります。Runs code until the end of the current function, then steps to the calling statement. このコマンドは、現在の関数の残りの部分をデバッグする必要がない場合に便利です。This command is useful when you don't need to debug the remainder of the current function.
[カーソル行の前まで実行]Run to Cursor Ctrl + F10Ctrl+F10 エディターのキャレット位置までコードを実行します。Runs code up to the location of the caret in the editor. このコマンドを使用すると、デバッグする必要がないコードのセグメントを簡単にスキップすることができます。This command allows you to easily skip over a segment of code that you don't need to debug.
次のステートメントの設定Set Next Statement Ctrl + Shift + F10Ctrl+Shift+F10 コードの現在の実行ポイントを、キャレットの位置に変更します。Changes the current run point in the code to the location of the caret. このコマンドを使用すると、エラーがある場合や望ましくない副作用があることがわかっている場合などに、コードのセグメントが実行されないようスキップすることができます。This command allows you to omit a segment of code from being run at all, such as when you know the code is faulty or produces and unwanted side-effect.
次のステートメントの表示Show Next Statement Alt + Num *Alt+Num * 次に実行されるステートメントに戻ります。Returns you to the next statement to run. このコマンドは、コード内のさまざまな場所をチェックしたために、デバッガーがどこで停止しているかわからなくなってしまった場合に便利です。This command is helpful if you've been looking around in your code and don't remember where the debugger is stopped.

値の検査と変更Inspecting and modifying values

デバッガーで停止中に、変数の値を検査して変更することができます。When stopped in the debugger, you can inspect and modify the values of variables. ウォッチ ウィンドウを使用して、個々の変数やカスタム式を監視することもできますYou can also use the Watch window to monitor individual variables as well as custom expressions. (詳しくは変数の検査に関する記事を参照してください)。(See Inspect Variables for general details.)

データヒントを使用して値を表示するには、エディター内で変数の上にマウスを合わせます。To view a value using DataTips, simply hover the mouse over any variable in the editor. 値をクリックして変更することができます。You can click on the value to change it:

デバッガーのデータヒント

自動変数ウィンドウ ([デバッグ] > [ウィンドウ] > [自動変数]) には、現在のステートメントに近い変数と式が表示されます。The Autos window (Debug > Windows > Autos) contains variables and expressions that are close to the current statement. 値を編集するには、値列をダブルクリックするか、値列を選択して F2 キーを押します。You can double-click in the value column or select and press F2 to edit the value:

デバッガーの自動変数ウィンドウ

ローカル ウィンドウ ([デバッグ] > [ウィンドウ] > [ローカル]) には、現在のスコープ内のすべての変数が表示されます。この値も編集できます。The Locals window (Debug > Windows > Locals) displays all variables that are in the current scope, which can again be edited:

デバッガーのローカル ウィンドウ

自動変数ウィンドウとローカル ウィンドウの使用方法について詳しくは、「Inspecting Variables in the Autos and Locals Windows (自動変数ウィンドウおよびローカル ウィンドウでの変数の検査)」を参照してください。For more on using Autos and Locals, see Inspecting Variables in the Autos and Locals Windows.

ウォッチ ウィンドウ ([デバッグ] > [ウィンドウ] > [ウォッチ 1 ~ 4] ) では、任意の Python 式を入力して結果を表示できます。The Watch windows (Debug > Windows > Watch > Watch 1-4) allow you to enter arbitrary Python expressions and view the results. 式は、ステップごとに再評価されます。Expressions are reevaluated for each step:

デバッガーのウォッチ ウィンドウ

ウォッチ ウィンドウの使用方法について詳しくは、「Setting a Watch on Variables using the Watch and QuickWatch Windows (ウォッチ ウィンドウとクイック ウォッチ ウィンドウを使用して変数のウォッチ ポイントを設定する)」を参照してください。For more on using Watch, see Setting a Watch on Variables using the Watch and QuickWatch Windows.

文字列値 (ここでは、strunicodebytes および bytearray はすべて文字列と見なします) を検査する際、値の右側に虫眼鏡のアイコンが表示されます。When inspected a string value(str, unicode, bytes, and bytearray are all considered strings for this purpose), a magnifying glass icon appears on the right side of the value. このアイコンをクリックすると、ポップアップ ダイアログに引用符なしの文字列値が表示されます。テキストは改行およびスクロールされるので、長い文字列の場合に便利です。Clicking the icon displays the unquoted string value in a popup dialog, with wrapping and scrolling, which is useful for long strings. さらに、このアイコンのドロップダウン矢印を選択すると、プレーン テキスト、HTML、XML、または JSON のビジュアライザーを選択できます。In addition, selecting the drop-down arrow on the icon allows you to select plain text, HTML, XML, and JSON visualizations:

文字列のビジュアライザー

HTML、XML、JSON のビジュアライザーは別のポップアップ ウィンドウに表示されます。構文が強調表示され、ツリー ビューで表示されます。HTML, XML, and JSON visualizations appear in separate popup windows with syntax highlighting and tree views.

例外Exceptions

プログラムのデバッグ中にエラーが発生し、そのエラーの例外ハンドラーがない場合、デバッガーは例外の発生ポイントで中断します。If an error occurs in your program during debugging, but you don't have an exception handler for it, the debugger breaks at the point of the exception:

例外のポップアップ

ここで、呼び出し履歴を含めたプログラムの状態を検査することができます。At this point you can inspect the program state, including the call stack. ただし、コードのステップ実行を試みると、例外は、処理されるかプログラムが終了するまでスローされ続けます。However, if you attempt to step through the code, the exception continues being thrown until it is either handled or your program exits.

[デバッグ] > [ウィンドウ] > [例外設定] メニュー コマンドを選択すると、ウィンドウが開き、[Python Exceptions (Python 例外)] を展開することができます。The Debug > Windows > Exception Settings menu command brings up a window in which you can expand Python Exceptions:

例外ウィンドウ

各例外のチェックボックスは、その例外が発生したときに "常に" デバッガーを中断するかどうかを制御します。The checkbox for each exception controls whether the debugger always breaks when it is raised. 特定の例外で中断する頻度を増やすには、該当するチェックボックスをオンにします。Check this box when you want to break more often for a particular exception.

既定では、ほとんどの例外は、ソース コードで例外ハンドラーが見つからないときに中断します。By default, most exceptions break when an exception handler cannot found in the source code. この動作を変更するには、例外を右クリックし、[ユーザー コードで処理されない場合は続行] チェックボックスをオンまたはオフにします。To change this behavior, right-click any exception and check or uncheck Continue When Unhandled in User Code. 特定の例外で中断する頻度を減らすには、該当するチェックボックスをオフにします。Clear this box when you want to break less often for an exception.

この一覧に表示されていない例外を構成するには、[追加] ボタンをクリックして追加します。To configure an exception that does not appear in this list, click the Add button to add it. この名前は、例外の完全名と一致している必要があります。The name must match the full name of the exception.

プロジェクトのデバッグ オプションProject debugging options

既定では、デバッガーは標準的な Python ランチャーを使用してプログラムを起動します。コマンドライン引数も、特別なパスや条件も使用しません。By default, the debugger starts your program with the standard Python launcher, no command-line arguments, and no other special paths or conditions. スタートアップ オプションはプロジェクトのデバッグ プロパティで変更することができます。デバッグ プロパティにアクセスするには、ソリューション エクスプローラーでプロジェクトを右クリックし、[プロパティ] を選択して、[デバッグ] タブを選択します。Startup options are changed through the project's debug properties accessed by right-clicking your project in Solution Explorer, selecting Properties, and selecting the Debug tab.

プロジェクトのデバッグ プロパティ

起動モードのオプションLaunch mode options

オプションOption 説明Description
標準的な Python ランチャーStandard Python launcher CPython、IronPython、および Stackless Python などのバリエーションと互換性のあるポータブル Python で記述されたコードのデバッグに使用します。Uses debugging code written in portable Python that is compatible with CPython, IronPython, and variants such as Stackless Python. 純粋な Python コードをデバッグするのに最適です。It provides the best experience for debugging pure Python code. このランチャーは、実行中の python.exe プロセスにアタッチする場合に使用されます。When you attach to a running python.exe process, this launcher is used. このランチャーには CPython 用の混合モード デバッグも用意されており、C/C++ コードと Python コードとの間でシームレスなステップ実行ができます。This launcher also provides mixed-mode debugging for CPython, allowing you to step seamlessly between C/C++ code and Python code.
Web ランチャーWeb launcher 起動時に既定のブラウザーを起動し、テンプレートのデバッグを有効にします。Starts your default browser on launch and enables debugging of templates. 詳細については、Web テンプレートのデバッグに関する記事を参照してください。See the Web template debugging section for more information.
Django Web ランチャーDjango Web launcher Web ランチャーと同じです。旧バージョンと互換性のために記載しています。Identical to the Web launcher and shown only for backwards compatibility.
IronPython (.NET) ランチャーIronPython (.NET) launcher .NET デバッガーを使用します。IronPython でのみ機能しますが、C# や VB を含む任意の .NET 言語プロジェクト間でステップ実行ができます。Uses the .NET debugger, which only works with IronPython but allows for stepping between any .NET language project, including C# and VB. このランチャーは、IronPython をホストしている実行中の .NET プロセスにアタッチする場合に使用されます。This launcher is used if you attach to a running .NET process that is hosting IronPython.

実行オプション (検索パス、スタートアップ引数、環境変数)Run options (search paths, startup arguments, and environment variables)

オプションOption 説明Description
検索パスSearch Paths これらの値は、ソリューション エクスプローラーのプロジェクトの [検索パス] ノードに表示される内容と同じです。These values match what's shown in the project's Search Paths node in Solution Explorer. ここで値を変更することもできますが、ソリューション エクスプローラーを使用した方が、フォルダーを参照したり、自動で相対パスに変換したりできるので簡単です。You can modify this value here, but it's easier to use Solution Explorer that lets you browse folders and automatically converts paths to relative form.
スクリプトの引数Script Arguments これらの引数は、スクリプトを起動するコマンドのスクリプト ファイル名の後ろに追加されます。These arguments are added to the command used to launch your script, appearing after your script's filename. ここで指定した引数は、スクリプトで、最初の引数は sys.argv[1]、2 番目の引数は sys.argv[2] (その後も同様) として利用できます。The first item here is available to your script as sys.argv[1], the second as sys.argv[2], and so on.
Interpreter Arguments (インタプリターの引数)Interpreter Arguments これらの引数は、ランチャーのコマンドラインのスクリプト名の前に追加されます。These arguments are added to the launcher command line before the name of your script. 警告をコントロールする -W ...、プログラムを少し最適化する -O、バッファーなし IO を使用する -u などがよく使用されます。Common arguments here are -W ... to control warnings, -O to slightly optimize your program, and -u to use unbuffered IO. IronPython のユーザーは、多くの場合、このフィールドを使用して -X オプションを渡します (-X:Frames-X:MTA など)。IronPython users are likely to use this field to pass -X options, such as -X:Frames or -X:MTA.
Interpreter Path (インタープリターのパス)Interpreter Path 現在の環境に関連付けられているパスをオーバーライドします。Overrides the path associated with the current environment. 非標準のインタープリターを使用してスクリプトを起動する場合に便利です。value may be useful for launching your script with a non-standard interpreter.
環境変数Environment Variables 複数行のテキスト ボックスで、NAME=VALUE の形式でエントリを追加します。In this multi-line text box, add entries of the form NAME=VALUE. この設定は最後に適用されます。既存のグローバル環境変数よりも優先され、検索パスの設定に従って PYTHONPATH が設定された後に適用されるため、これらの変数を手動でオーバーライドするために使用できます。Because this setting is applied last, on top of any existing global environment variables, and after PYTHONPATH is set according to the Search Paths setting, it can be used to manually override any of those other variables.

<a name="the-debug-interactive-window"<a name="the-debug-interactive-window"

イミディエイト ウィンドウと対話型ウィンドウImmediate and interactive windows

デバッグ セッション中に使用できる対話型ウィンドウは 2 つあります。標準の Visual Studio イミディエイト ウィンドウと、Python Debug Interactive ウィンドウです。There are two interactive windows you can use during a debugging session: the standard Visual Studio Immediate window, and the Python Debug Interactive window.

イミディエイト ウィンドウ ([デバッグ] > [ウィンドウ] > [イミディエイト]) は、Python 式を即座に評価したり、実行中のプログラム内の変数を検査したり割り当てたりする際に使用します。The Immediate window (Debug > Windows > Immediate) is used for quick evaluation of Python expressions and inspection or assignment of variables within the running program. 詳細については、イミディ エイト ウィンドウに関する一般的なトピックを参照してください。See the general Immediate Window topic for details.

Python Debug Interactive ウィンドウ ([デバッグ] > [ウィンドウ] > [Python Debug Interactive]) は、より豊富な機能を備えています。コードの記述と実行を含め、対話型 REPL のすべてのデバッグ機能を利用できます。The Python Debug Interactive window (Debug > Windows > Python Debug Interactive) is richer as it makes the full Interactive REPL experience available while debugging, including writing and running code. Python Debug Interactive ウィンドウは、標準的な Python ランチャーを使用して、デバッガー内で開始しているすべてのプロセスに自動的に接続します ([デバッグ] > [プロセスにアタッチする] でアタッチされたプロセスも含みます)。It automatically connects to any process started in the debugger using the Standard Python launcher (including processes attached through Debug > Attach to Process). ただし、C/C++ の混合モード デバッグを使用している場合、Debug Interactive ウィンドウは使用できません。It's not, however, available when using mixed-mode C/C++ debugging.

Python Debug Interactive ウィンドウ

Debug Interactive ウィンドウは、標準の REPL コマンドに加えて、特別なメタコマンドをサポートしています。The Debug Interactive window supports special meta-commands in addition to the standard REPL commands:

コマンドCommand 引数Arguments 説明Description
$continue$cont$c$continue, $cont, $c 現在のステートメントからプログラムの実行を開始します。Starts running the program from the current statement.
$down, $d$down, $d スタック トレースで現在のフレームを 1 つ下のレベルに移動します。Move the current frame one level down in the stack trace.
$frame 現在のフレーム ID を表示します。Displays the current frame id.
$frame フレーム IDframe id 現在のフレームを指定のフレーム ID に切り替えます。Switches the current frame to the specified frame id.
$load ファイルからコマンドを読み込み、完了するまで実行します。Loads commands from file and executes until complete
$proc 現在のプロセス ID を表示します。Displays the current process id.
$proc プロセス IDprocess id 現在のプロセスを指定のプロセス ID に切り替えます。Switches the current process to the specified process id.
$procs 現在デバッグ中のプロセスの一覧を表示します。Lists the processes currently being debugged.
$stepin$step$s$stepin, $step, $s 次の関数呼び出しにステップ インします (可能な場合)。Steps into the next function call, if possible.
$stepout$return$r$stepout, $return, $r 現在の関数からステップ アウトします。Steps out of the current function.
$stepover$until$unt$stepover, $until, $unt 次の関数呼び出しにステップ オーバーします。Steps over the next function call.
$thread 現在のスレッド ID を表示します。Displays the current thread id.
$thread スレッド IDthread id 現在のスレッドを指定のスレッド ID に切り替えます。Switches the current thread to the specified thread id.
$threads 現在デバッグ中のスレッドの一覧を表示します。Lists the threads currently being debugged.
$up, $u$up, $u スタック トレースで現在のフレームを 1 つ上のレベルに移動します。Move the current frame one level up in the stack trace.
$where$w$bt$where, $w, $bt 現在のスレッドのフレームを一覧表示します。Lists the frames for the current thread.

標準のデバッガー ウィンドウのプロセス、スレッド、呼び出し履歴などは、Debug Interactive ウィンドウとは同期されないことに注意してください。Note that the standard debugger windows such as Processes, Threads, and Call Stack are not synchronized with the Debug Interactive window. Debug Interactive ウィンドウでアクティブなプロセス、スレッド、またはフレームを変更しても、他のデバッガー ウィンドウに影響はありません。Changing the active process, thread, or frame in the Debug Interactive window does not affect the other debugger windows. 同様に、他のデバッガー ウィンドウでアクティブなプロセス、スレッド、またはフレームを変更しても、Debug Interactive ウィンドウに影響はありません。Similarly, changing the active process, thread, or frame in the other debugger windows does not affect the Debug Interactive window.

Debug Interactive ウィンドウには独自のオプションがあり、[ツール] > [オプション] > [Python Tools] > [Debug Interactive ウィンドウ] からアクセスできます。The Debug Interactive window has its own set of options, which you can access through Tools > Options > Python Tools > Debug Interactive Window. Python 環境ごとに個別のインスタンスを持つ通常の Python Interactive ウィンドウとは異なり、Debug Interactive ウィンドウのインスタンスは 1 つだけで、デバッグ中のプロセスには常に Python インタープリターが使用されます。Unlike the regular Python Interactive window, which has a separate instance for each Python environment, there is only one Debug Interactive window and it always uses the Python interpreter for the process being debugged. 「Options for Python in Visual Studio」(Visual Studio の Python のオプション) の「Debugging options」(デバッグ オプション) を参照してください。See Options - Debugging options.

Python Interactive ウィンドウのオプション