Python 互動視窗
Jupyter(前身為 IPython Notebook)是一個開源專案,讓您可以輕鬆地在稱為筆記本 (notebook) 的畫布上結合 Markdown 文字與可執行的 Python 原始程式碼。Visual Studio Code 支援原生使用 Jupyter Notebooks,也能透過 Python 程式碼檔案進行操作。本主題涵蓋透過 Python 程式碼檔案所提供的支援,並示範如何:
- 使用類似 Jupyter 的程式碼儲存格
- 在 Python 互動視窗中執行程式碼
- 使用變數總管與資料檢視器來檢視、檢查及篩選變數
- 連線至遠端 Jupyter 伺服器
- 偵錯 Jupyter Notebook
- 匯出 Jupyter Notebook
若要使用 Jupyter Notebook,您必須在 VS Code 中啟用 Anaconda 環境,或是安裝了 Jupyter 套件的其他 Python 環境。若要選取環境,請從命令面板使用 Python: Select Interpreter 命令(⇧⌘P(Windows、Linux 為 Ctrl+Shift+P))。
一旦啟用了合適的環境,您就可以建立並執行類似 Jupyter 的程式碼儲存格、連線至遠端 Jupyter 伺服器以執行程式碼儲存格,並將 Python 檔案匯出為 Jupyter Notebook。
Jupyter 程式碼儲存格
您可以使用 # %% 註解在 Python 程式碼內定義類似 Jupyter 的程式碼儲存格。
# %%
msg = "Hello World"
print(msg)
# %%
msg = "Hello again"
print(msg)
注意:請確保將上述程式碼儲存為副檔名為 .py 的檔案。
當 Python 擴充功能偵測到程式碼儲存格時,會新增 執行儲存格 (Run Cell) 和 偵錯儲存格 (Debug Cell) 的 CodeLens 裝飾。第一個儲存格也會包含 執行下方區塊 (Run Below),後續所有儲存格則包含 執行上方區塊 (Run Above)。

注意:預設情況下,偵錯儲存格只會進入使用者程式碼。如果您想進入非使用者程式碼,則需要在 Jupyter 擴充功能設定中取消勾選 Debug Just My Code(⌘,(Windows、Linux 為 Ctrl+,))。
執行儲存格僅適用於單一程式碼儲存格。出現在第一個儲存格的 執行下方區塊會執行檔案中的所有程式碼。執行上方區塊則適用於該裝飾儲存格之前的所有程式碼儲存格(不包含該儲存格本身)。例如,您可以使用 執行上方區塊在執行特定儲存格之前,先初始化執行環境的狀態。
選取指令會啟動 Jupyter(若有必要,可能需要一分鐘),然後在 Python 互動 (Python Interactive) 視窗中執行相應的儲存格。

您也可以使用 (Ctrl+Enter) 或 Python: Run Selection/Line in Python Terminal 命令(Shift+Enter)來執行程式碼儲存格。使用此命令後,Python 擴充功能會自動將游標移至下一個儲存格。如果您位於檔案中的最後一個儲存格,擴充功能會自動插入另一個 # %% 分隔符號以建立新的儲存格,模擬 Jupyter Notebook 的行為。
您也可以點擊行號左側的邊界來設定中斷點。接著,您可以使用 偵錯儲存格來為該程式碼儲存格啟動偵錯工作階段。偵錯工具會在斷點處停止執行,並允許您逐行逐步執行程式碼及檢查變數(詳情請參閱偵錯)。
其他命令與鍵盤快速鍵
下表列出了使用程式碼儲存格時支援的其他命令與鍵盤快速鍵。
| 指令 | 鍵盤快速鍵 |
|---|---|
| Python: 前往下一個儲存格 | Ctrl+Alt+] |
| Python: 前往上一個儲存格 | Ctrl+Alt+[ |
| Python: 向上方擴展選擇範圍 | Ctrl+Shift+Alt+[ |
| Python: 向下方擴展選擇範圍 | Ctrl+Shift+Alt+] |
| Python: 將選取的儲存格向上移動 | Ctrl+; U |
| Python: 將選取的儲存格向下移動 | Ctrl+; D |
| Python: 在上方插入儲存格 | Ctrl+; A |
| Python: 在下方插入儲存格 | Ctrl+; B |
| Python: 在下方位置插入儲存格 | Ctrl+; S |
| Python: 刪除選取的儲存格 | Ctrl+; X |
| Python: 將儲存格變更為程式碼 | Ctrl+; C |
| Python: 將儲存格變更為 Markdown | Ctrl+; M |
使用 Python 互動視窗
上一節提到的 Python 互動視窗可以用作執行任意程式碼(無論有無程式碼儲存格)的獨立主控台。若要將視窗作為主控台使用,請從命令面板開啟 Jupyter: Create Interactive Window 命令。隨後即可輸入程式碼,使用 Enter 換行,並使用 Shift+Enter 執行程式碼。
若要將視窗搭配檔案使用,請從命令面板使用 Jupyter: Run Current File in Python Interactive Window 命令。
IntelliSense
Python 互動視窗具備完整的 IntelliSense 功能,包括程式碼完成、成員清單、方法的快速資訊以及參數提示。您在 Python 互動視窗中輸入時,能獲得與程式碼編輯器一樣高的生產力。

圖表檢視器 (Plot Viewer)
圖表檢視器讓您能更深入地處理圖表。在檢視器中,您可以對目前的繪圖工作階段進行平移、縮放和導覽。您也可以將圖表匯出為 PDF、SVG 和 PNG 格式。
在 Python 互動視窗中,雙擊任何圖表即可在檢視器中開啟,或選取圖表左上角的展開按鈕。

注意:Python 互動視窗支援呈現使用 matplotlib 和 Altair 建立的圖表。
變數總管與資料檢視器
在 Python 互動視窗中,您可以檢視、檢查及篩選目前 Jupyter 工作階段中的變數。執行程式碼和儲存格後,選取互動視窗工具列中的 變數 (Variables) 按鈕即可開啟變數總管。您會看到目前變數的清單,該清單會隨著程式碼中變數的使用而自動更新。

如需關於變數的更多資訊,您也可以雙擊某一行,或使用 在資料檢視器中顯示變數 (Show variable in data viewer) 按鈕,在資料檢視器中查看變數的詳細資訊。開啟後,您可以透過搜尋列來篩選數值。

連線至遠端 Jupyter 伺服器
您可以連線至遠端 Jupyter 伺服器,將 Jupyter Notebook 中密集的運算作業分流至其他電腦。連線後,程式碼儲存格將在遠端伺服器上執行,而非本機電腦。
若要連線至遠端 Jupyter 伺服器:
-
從命令面板執行 Jupyter: Specify local or remote Jupyter server for connections 命令(⇧⌘P(Windows、Linux 為 Ctrl+Shift+P))。
-
選擇您要如何連線至 Jupyter 伺服器。

-
若是在遠端工作,請在系統提示時提供伺服器的 URI (主機名稱),並包含
?token=URL 參數的驗證權杖。(如果您在 VS Code 終端機中啟動已啟用驗證權杖的伺服器,包含權杖的 URL 通常會出現在終端機輸出中,您可以從該處複製。)或者,您也可以在提供 URI 後指定使用者名稱與密碼。
-
Python 互動視窗會顯示 URI 以指示程式碼執行的位置(如下圖所示,URI 已模糊處理)。

注意:為了提高安全性,Microsoft 建議您採取安全預防措施來設定 Jupyter 伺服器,例如 SSL 和權杖支援。這有助於確保發送至 Jupyter 伺服器的請求皆經過驗證,且與遠端伺服器的連線均已加密。如需有關保護筆記本伺服器的指引,請參閱 Jupyter 文件。
將 Jupyter Notebook 轉換為 Python 程式碼檔案
當您啟用已安裝 Jupyter 的環境時,可以在 VS Code 中開啟 Jupyter Notebook 檔案 (.ipynb),然後將其轉換為 Python 程式碼。轉換檔案後,您就可以像執行任何其他 Python 檔案一樣執行程式碼,並使用 VS Code 偵錯工具。在 VS Code 中開啟並偵錯筆記本是一種找出並解決程式碼 Bug 的便利方法,而這在 Jupyter Notebook 中直接操作則較為困難。
當您開啟筆記本檔案時,Visual Studio Code 會自動在筆記本編輯器中開啟它。使用工具列上的轉換圖示,將筆記本 (.ipynb) 檔案轉換為 Python 檔案 (.py)。

選取轉換圖示,接著選擇「Python Script」,稍等幾秒鐘,VS Code 就會以未命名的檔案開啟轉換後的筆記本。筆記本的儲存格在 Python 檔案中以 # %% 註解分隔;Markdown 儲存格會完全轉換為 # %% [markdown] 開頭的註解,並在互動視窗中與程式碼及圖表等輸出內容一同以 HTML 格式呈現。

注意:您第一次在 Python 檔案中執行程式碼儲存格時,Python 擴充功能會啟動 Jupyter 伺服器。伺服器啟動以及 Python 互動視窗顯示程式碼結果可能需要一些時間。
偵錯 Jupyter Notebook
Visual Studio Code 偵錯工具可讓您逐步執行程式碼、設定中斷點、檢查狀態並分析問題。使用偵錯工具是尋找並修正筆記本程式碼問題的有效方法。
-
在 VS Code 中,啟用已安裝 Jupyter 的 Python 環境(如本文開頭所述)。
-
按照前一節所述將筆記本的
.ipynb檔案匯入 VS Code。(若您使用的是基於雲端的 Jupyter 環境,例如 Azure Notebooks,請先下載該檔案。) -
若要啟動偵錯工具,請使用下列其中一種選項:
- 對於整個筆記本,請開啟命令面板(⇧⌘P(Windows、Linux 為 Ctrl+Shift+P))並執行 Jupyter: Debug Current File in Python Interactive Window 命令。
- 對於單一儲存格,請使用該儲存格上方出現的 偵錯儲存格裝飾。偵錯工具會專門針對該儲存格中的程式碼啟動。預設情況下,偵錯儲存格只會進入使用者程式碼。如果您想進入非使用者程式碼,則需要在 Jupyter 擴充功能設定中取消勾選 Debug Just My Code(⌘,(Windows、Linux 為 Ctrl+,))。
-
若要熟悉 VS Code 的一般偵錯功能(例如檢查變數、設定中斷點及其他活動),請參閱 VS Code 偵錯。
-
當您發現問題時,請停止偵錯工具、修正程式碼、儲存檔案,然後再次啟動偵錯工具。
-
當您確認所有程式碼皆正確無誤後,請儲存檔案,並按照下一節所述匯出筆記本。隨後,您即可將該筆記本上傳至您的標準 Jupyter 環境。
匯出 Jupyter Notebook
除了開啟 Jupyter Notebook 外,您也可以從命令面板(⇧⌘P(Windows、Linux 為 Ctrl+Shift+P))使用下列其中一個命令,將 VS Code 中的 Python 檔案內容匯出為 Jupyter Notebook(副檔名為 .ipynb)。
- Jupyter: Export Current Python File as Jupyter Notebook:根據目前檔案的內容建立 Jupyter Notebook,並使用
# %%和# %% [markdown]分隔符號來指定它們各自的儲存格類型。 - Jupyter: Export Current Python File and Output as Jupyter Notebook:根據目前檔案的內容建立 Jupyter Notebook,並包含程式碼儲存格的輸出內容。
- Jupyter: Export Interactive Window as Jupyter Notebook:根據 Python 互動視窗的內容建立 Jupyter Notebook。
匯出內容後,VS Code 會顯示一個提示,讓您可以在瀏覽器中開啟該筆記本。