使用 Visual Studio 中的 Python 互動視窗

Visual Studio 為您的每個 Python 環境提供互動式 read-evaluate-print loop (REPL) 視窗,它是以透過命令列上的 python.exe 命令取得的 REPL 為基礎加以改進。 使用 Python 互動視窗可輸入任意 Python 程式碼,然後查看即時結果。 這種編碼方法可協助您了解並實驗應用程式開發介面和程式庫,並以互動方式開發工作程式碼,以包含在您的專案中。

Visual Studio 2022 中 Python 互動式 read-evaluate-print loop (REPL) 視窗的螢幕擷取畫面。

Visual Studio 中 Python 互動式 read-evaluate-print loop (REPL) 視窗的螢幕擷取畫面。

Visual Studio 有許多 Python REPL 模式可供選擇:

REPL 描述 編輯 偵錯 影像
標準 預設的 REPL 直接與 Python 交談 標準編輯 (多行及更多) 是,透過 $attach No
偵錯 預設的 REPL 與已完成偵錯的 Python 程序交談 標準編輯 僅偵錯 No
IPython REPL 與 IPython 後端交談 IPython 命令、Pylab 便利性 No 是,內嵌於 REPL
沒有 Pylab 的 IPython REPL 與 IPython 後端交談 標準 IPython No 是,獨立視窗

本文章描述標準偵錯 REPL 模式。 如需 IPython 模式的詳細資料,請參閱使用 IPython REPL

如需範例的詳細逐步解說 (包含與編輯器的互動,例如 Ctrl+Enter),請參閱使用互動式 REPL 視窗

必要條件

  • 已在 Windows 中安裝 Visual Studio 並支援 Python 工作負載。 如需詳細資訊,請參閱在 Visual Studio 中安裝 Python 支援。

目前不支援 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 互動視窗中執行<專案 | 檔案>] 或使用鍵盤快速鍵式 Shift+Alt+F5 可以為專案中的啟動檔案或任何獨立檔案開啟互動視窗

    螢幕擷取畫面顯示如何在 Visual Studio 2022 中使用 [Python 互動視窗] 功能表選項的 [偵錯執行專案]。

    螢幕擷取畫面顯示如何在 Visual Studio 中使用 [Python 互動視窗] 功能表選項的 [偵錯執行專案]。

另一個選項是將您在 Visual Studio 編輯器中撰寫的程式碼傳送至互動視窗將程式碼傳送至互動視窗中說明了此方法。

探索互動視窗選項

您可以控制互動視窗的各個層面,例如啟動指令檔的位置,以及方向鍵在視窗環境中的運作方式。 若要存取選項,請選取 [工具]>[選項]>[Python>交互視窗]:

Visual Studio 中 Python 互動視窗選項的螢幕擷取畫面。

Visual Studio 的 Python 互動視窗選項詳細說明了這些選項。

使用互動視窗

互動視窗中,您可以在 REPL Python 命令提示字元 >>> 中逐行輸入程式碼。 當您輸入每一行時,Visual Studio 會執行程式碼,包括匯入必要的模組和定義變數。

當 Visual Studio 偵測到某行程式碼未形成完整陳述式時,程式碼提示會變更為 REPL 接續 ...。 此提示指出您需要輸入更多程式碼行才能完成陳述式區塊。 Visual Studio 會先等待結束語法,再嘗試執行程式碼區塊。

當您定義 for 陳述式時,第一行程式碼會啟動 for 區塊,並以冒號結尾。 區塊可以包含一行或多行程式碼,這些程式碼會定義在 for 迴圈期間要完成的任務。 當您在空白行按下 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. 以滑鼠右鍵按一下選取的程式碼,然後選取 [傳送至互動視窗] (或使用鍵盤快速鍵 Ctrl+EE)。

    顯示如何在 Visual Studio 2022 中使用 [傳送至互動視窗] 功能表選項的螢幕擷取畫面。

    顯示如何在 Visual Studio 中使用 [傳送至互動視窗] 功能表選項的螢幕擷取畫面。

修改和執行程式碼

將程式碼傳送至互動視窗並檢視輸出之後,可以修改程式碼並測試變更。 使用向上和向下箭號捲動至視窗命令歷史記錄中的程式碼。 選取 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. 調整 [完成模式] 群組中的設定,例如 [永不評估運算式] 或 [隱藏靜態分析建議]。

如需詳細資訊,請參閱選項 - 互動視窗選項