在 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 | 不 | 是,個別視窗 |
本文說明 Standard 和 Debug 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 環境] 視窗中:
選取 檢視>[其他 Windows>] [Python 環境] 以開啟 [Python 環境 ] 視窗(或使用鍵盤 Ctrl+K>Ctrl+`)。
在 [Python 環境] 視窗中,選取環境,然後切換至環境的 [概觀] 頁面。
在 [概觀] 頁面中,選取 [開啟互動式視窗] 選項。
從 Visual Studio 工具的 [檢視] 功能表中,選取 [其他視窗>Python 互動式視窗]:
從 Visual Studio 工具列上的 [偵錯] 選單中,選取 [執行 <專案 | 檔案> 在 Python 互動式中] 或使用鍵盤快捷鍵 Shift+Alt+F5。 您可以為項目中的 啟動檔案 或任何獨立檔案開啟 互動式視窗。
另一個選項是將您在 Visual Studio 編輯器中撰寫的程式代碼傳送至 Interactive Window。 此方法在 將程式代碼傳送至互動式視窗中進行描述。
探索互動式視窗選項
您可以控制 互動式視窗的各個層面,例如啟動腳本檔案的位置,以及箭頭鍵在窗口環境中的運作方式。 若要存取選項,請選取 [工具]>[選項]>Python>Interactive 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 編輯器中將程式代碼傳送至視窗。 此命令適用於反覆或進化程式代碼開發,包括在您開發程式代碼時測試程序代碼。
在 Visual Studio 編輯器中開啟程式代碼檔案,然後選取部分或所有程式代碼。
使用滑鼠右鍵按下所選的程式碼,然後選擇 傳送至互動式,或使用鍵盤快捷方式 Ctrl+E、E。
修改和執行程序代碼
將程式代碼傳送至 互動式視窗 並檢視輸出之後,您可以修改程式代碼並測試變更。 使用向上和向下箭頭捲動至視窗命令歷史中的代碼。 選取 Ctrl +Enter來修改程式碼並執行更新的程式代碼。
當您進行變更時,如果您在完整程式碼陳述的結尾按下 Enter,Visual Studio 就會執行程式碼。 如果程式代碼語句未完成,Visual Studio 會在視窗中插入換行符。
儲存程式代碼並移除提示
完成程式代碼工作之後,您可以在 Interactive Window 中選取更新的程式代碼,然後將它貼回您的項目檔,以儲存您的工作。
當您將程式代碼從 互動式視窗 貼到編輯器中時,Visual Studio 預設會移除 REPL 命令提示字元 >>>
和接續提示字元 ...
。 此行為可讓您輕鬆地將程式代碼從視窗傳送至編輯器。
您可以使用貼上 來變更行為,移除 Interactive Window的 REPL 提示 選項:
選取 [[工具]>[選項],以開啟 [選項] 對話框。
展開 文本編輯器>Python>格式化 區段。
清除 [貼上] 選項 會移除 REPL 提示。
選取 [[工具]>[選項],以開啟 [選項] 對話框。
展開 [文本編輯器]>Python>進階 區段。
清除 貼上將會移除 選項中的 REPL 提示。
當您清除選項時,提示字元會保留在從視窗貼上的程式碼中。 如需詳細資訊,請參閱 選項 - 其他選項。
檢查 IntelliSense 行為
互動式視窗 包含以即時對象為基礎的 IntelliSense 建議,與 IntelliSense 僅以原始程式碼分析為基礎的程式碼編輯器不同。 因此,互動式視窗 中的 IntelliSense 建議更為正確,尤其是對於動態生成的程式碼。 缺點是具有副作用的功能,例如紀錄訊息,可能會影響您的開發體驗。
您可以透過 完成 選項來調整 Intellisense 行為:
選取 [[工具]>[選項],以開啟 [選項] 對話框。
展開 [Python>互動式 Windows] 區段。
調整 完成模式 群組中的設定,例如 永不評估表示式 或 隱藏靜態分析建議。
如需詳細資訊,請參閱 選項 - 互動式 Windows 選項。