共用方式為


在 Visual Studio 中使用 Python 互動式視窗

Visual Studio 會針對每個 Python 環境提供互動式讀取-評估-列印迴圈 (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 是,個別視窗

本文說明 StandardDebug 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. 選取 檢視>[其他 Windows>] [Python 環境] 以開啟 [Python 環境 ] 視窗(或使用鍵盤 Ctrl+K>Ctrl+`)。

    2. 在 [Python 環境] 視窗中,選取環境,然後切換至環境的 [概觀] 頁面。

    3. [概觀] 頁面中,選取 [開啟互動式視窗] 選項。

  • 從 Visual Studio 工具的 [檢視] 功能表中,選取 [其他視窗>Python 互動式視窗]

  • 從 Visual Studio 工具列上的 [偵錯] 選單中,選取 [執行 <專案 | 檔案> 在 Python 互動式中] 或使用鍵盤快捷鍵 Shift+Alt+F5。 您可以為項目中的 啟動檔案 或任何獨立檔案開啟 互動式視窗

另一個選項是將您在 Visual Studio 編輯器中撰寫的程式代碼傳送至 Interactive Window。 此方法在 將程式代碼傳送至互動式視窗中進行描述。

探索互動式視窗選項

您可以控制 互動式視窗的各個層面,例如啟動腳本檔案的位置,以及箭頭鍵在窗口環境中的運作方式。 若要存取選項,請選取 [工具]>[選項]>Python>Interactive Windows

Visual Studio 中 Python 互動式 Windows 選項的螢幕快照。

在 Visual Studio Python 互動式視窗選項中會詳細說明這些選項。

使用互動式視窗

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

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

當您定義 for 語句時,第一行程式代碼會啟動 for 區塊,並以冒號結尾。 區塊可以包含一或多行程式代碼,這些程式代碼會定義在 for 循環期間完成的工作。 當您選取 [在空白行上輸入 時,互動式視窗 會關閉區塊,Visual Studio 會執行程序代碼。

命令行 REPL 比較

互動式視窗 藉由自動縮排屬於周圍範圍的語句,來改善一般 Python 命令行 REPL 體驗。 這兩種方法都可讓您使用箭頭鍵來捲動您輸入的程序代碼。 互動式視窗 也提供多行專案,而命令行 REPL 則只提供單行。

Meta-commands

互動式視窗 支持數個中繼命令。 所有中繼命令的開頭都是美元符號 $。 您可以輸入 $help 以查看中繼命令清單,並 $help <command> 以取得特定命令的使用詳細數據。 下表摘要說明中繼命令。

Meta-command 描述
$$ 插入批注,這有助於在整個會話中批注程序代碼。
$cls$clear 清除編輯器視窗的內容,但保留歷程記錄和執行內容不變。
$help 顯示命令列表,或顯示特定命令的說明。
$load 從檔案載入命令並執行,直到完成為止。
$mod 將目前的範圍切換至指定的模組名稱。
$reset 將執行環境重設為初始狀態,但保留歷程記錄。
$wait 至少等候指定的毫秒數。

您也可以藉由實作和導出 IInteractiveWindowCommand 類別,使用Visual Studio延伸模組擴充命令。 如需詳細資訊,請檢閱 GitHub上的 (範例)。

切換互動式視窗範圍

根據預設,專案的 互動式視窗 範圍會限定為專案的 啟動檔案,就像您從命令提示字元執行程式檔一樣。 針對獨立檔案,範圍會設定為該檔案。 在 REPL 工作階段期間,您可以隨時使用 模組範圍 下拉式清單來變更範圍:

匯入模組之後,例如 import importlib,選項會出現在 模組範圍 下拉功能表中,以切換至該模組中的任何範圍。 互動式視窗中的訊息 報告新範圍的變更,因此您可以檢閱命令歷程記錄,以追蹤您在會話期間取得特定狀態的方式。

如果您在範圍中輸入 dir() 命令,Visual Studio 就會在該範圍中顯示有效的識別碼,包括函式名稱、類別和變數。 下列圖片顯示 dir() 命令在 importlib 範圍內的結果:

將程式代碼傳送至互動式視窗

除了直接在 Interactive Window 內運作,您還可以在 Visual Studio 編輯器中將程式代碼傳送至視窗。 此命令適用於反覆或進化程式代碼開發,包括在您開發程式代碼時測試程序代碼。

  1. 在 Visual Studio 編輯器中開啟程式代碼檔案,然後選取部分或所有程式代碼。

  2. 使用滑鼠右鍵按下所選的程式碼,然後選擇 傳送至互動式,或使用鍵盤快捷方式 Ctrl+EE

    顯示如何在 Visual Studio 中使用 [傳送至互動式] 選單選項的螢幕快照。

修改和執行程序代碼

將程式代碼傳送至 互動式視窗 並檢視輸出之後,您可以修改程式代碼並測試變更。 使用向上和向下箭頭捲動至視窗命令歷史中的代碼。 選取 Ctrl +Enter來修改程式碼並執行更新的程式代碼。

當您進行變更時,如果您在完整程式碼陳述的結尾按下 Enter,Visual Studio 就會執行程式碼。 如果程式代碼語句未完成,Visual Studio 會在視窗中插入換行符。

儲存程式代碼並移除提示

完成程式代碼工作之後,您可以在 Interactive Window 中選取更新的程式代碼,然後將它貼回您的項目檔,以儲存您的工作。

當您將程式代碼從 互動式視窗 貼到編輯器中時,Visual Studio 預設會移除 REPL 命令提示字元 >>> 和接續提示字元 ...。 此行為可讓您輕鬆地將程式代碼從視窗傳送至編輯器。

您可以使用貼上 來變更行為,移除 Interactive Window的 REPL 提示 選項:

  1. 選取 [[工具]>[選項],以開啟 [選項] 對話框。

  2. 展開 文本編輯器>Python>格式化 區段。

  3. 清除 [貼上] 選項 會移除 REPL 提示

  1. 選取 [[工具]>[選項],以開啟 [選項] 對話框。

  2. 展開 [文本編輯器]>Python>進階 區段。

  3. 清除 貼上將會移除 選項中的 REPL 提示。

當您清除選項時,提示字元會保留在從視窗貼上的程式碼中。 如需詳細資訊,請參閱 選項 - 其他選項

檢查 IntelliSense 行為

互動式視窗 包含以即時對象為基礎的 IntelliSense 建議,與 IntelliSense 僅以原始程式碼分析為基礎的程式碼編輯器不同。 因此,互動式視窗 中的 IntelliSense 建議更為正確,尤其是對於動態生成的程式碼。 缺點是具有副作用的功能,例如紀錄訊息,可能會影響您的開發體驗。

您可以透過 完成 選項來調整 Intellisense 行為:

  1. 選取 [[工具]>[選項],以開啟 [選項] 對話框。

  2. 展開 [Python>互動式 Windows] 區段。

  3. 調整 完成模式 群組中的設定,例如 永不評估表示式隱藏靜態分析建議

如需詳細資訊,請參閱 選項 - 互動式 Windows 選項