參加你附近的 ,瞭解 VS Code 中的 AI 輔助開發。

Python 互動視窗

Jupyter(前身為 IPython Notebook)是一個開源專案,可讓您在一個名為**筆記本**的畫布上輕鬆地將 Markdown 文字和可執行的 Python 原始碼組合在一起。Visual Studio Code 支援原生使用 Jupyter Notebook,也支援透過 Python 程式碼檔案使用。本主題涵蓋透過 Python 程式碼檔案提供的支援,並演示如何

  • 使用類似 Jupyter 的程式碼單元
  • 在 Python 互動視窗中執行程式碼
  • 使用變數資源管理器和資料檢視器檢視、檢查和篩選變數
  • 連線到遠端 Jupyter 伺服器
  • 除錯 Jupyter Notebook
  • 匯出 Jupyter Notebook

要使用 Jupyter Notebook,您必須在 VS Code 中啟用一個 Anaconda 環境,或者在已安裝 Jupyter 包的其他 Python 環境中啟用。要選擇環境,請使用命令面板 (⇧⌘P (Windows、Linux Ctrl+Shift+P)) 中的 **Python: Select Interpreter** 命令。

啟用適當的環境後,您可以建立和執行類似 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 adornments for code cells in the VS Code editor

注意:預設情況下,**Debug Cell** 僅步入使用者程式碼。如果您想步入非使用者程式碼,您需要在 Jupyter 擴充套件設定 (⌘, (Windows、Linux Ctrl+,)) 中取消勾選 **Debug Just My Code**。

**Run Cell** 僅適用於單個程式碼單元。**Run Below** 出現在第一個單元格上,執行檔案中的所有程式碼。**Run Above** 適用於該裝飾所在單元格之前的所有程式碼單元(不包括該單元格本身)。例如,您可以使用 **Run Above** 在執行特定單元格之前初始化執行時環境的狀態。

選擇一個命令會啟動 Jupyter(如果需要,這可能需要一分鐘),然後在 **Python 互動**視窗中執行相應的單元

Code cells running in a Python Interactive window

您還可以使用 (Ctrl+Enter) 或 **Python: Run Selection/Line in Python Terminal** 命令 (Shift+Enter) 執行程式碼單元。使用此命令後,Python 擴充套件會自動將游標移動到下一個單元。如果您在檔案的最後一個單元中,該擴充套件會自動為新單元插入另一個 # %% 分隔符,模仿 Jupyter Notebook 的行為。

您也可以點選行號左側的邊距來設定斷點。然後,您可以使用 **Debug Cell** 為該程式碼單元啟動除錯會話。偵錯程式會在斷點處停止執行,並允許您逐行步進程式碼並檢查變數(詳見除錯)。

其他命令和鍵盤快捷鍵

下表列出了在使用程式碼單元時支援的其他命令和鍵盤快捷鍵。

命令 鍵盤快捷鍵
Python: Go to Next Cell (轉到下一個單元) Ctrl+Alt+]
Python: Go to Previous Cell (轉到上一個單元) Ctrl+Alt+[
Python: Extend Selection by Cell Above (向上擴充套件單元選擇) Ctrl+Shift+Alt+[
Python: Extend Selection by Cell Below (向下擴充套件單元選擇) Ctrl+Shift+Alt+]
Python: Move Selected Cells Up (上移選定單元) Ctrl+; U
Python: Move Selected Cells Down (下移選定單元) Ctrl+; D
Python: Insert Cell Above (在上方插入單元) Ctrl+; A
Python: Insert Cell Below (在下方插入單元) Ctrl+; B
Python: Insert Cell Below Position (在游標位置下方插入單元) Ctrl+; S
Python: Delete Selected Cells (刪除選定單元) Ctrl+; X
Python: Change Cell to Code (將單元更改為程式碼) Ctrl+; C
Python: Change Cell to Markdown (將單元更改為 Markdown) Ctrl+; M

使用 Python 互動視窗

上一節中提到的 **Python 互動**視窗可以作為一個獨立的控制檯使用,用於執行任意程式碼(無論有無程式碼單元)。要將該視窗用作控制檯,請從命令面板中開啟 **Jupyter: Create Interactive Window** 命令。然後您可以輸入程式碼,使用 Enter 換行,使用 Shift+Enter 執行程式碼。

要將該視窗與檔案一起使用,請從命令面板中執行 **Jupyter: Run Current File in Python Interactive Window** 命令。

IntelliSense

Python 互動視窗具有完整的 IntelliSense 功能——程式碼補全、成員列表、方法的快速資訊和引數提示。您在 Python 互動視窗中輸入程式碼的效率可以和在程式碼編輯器中一樣高。

IntelliSense in the Python Interactive window

繪圖檢視器

繪圖檢視器使您能夠更深入地處理您的繪圖。在檢視器中,您可以平移、縮放和導航當前會話中的繪圖。您還可以將繪圖匯出為 PDF、SVG 和 PNG 格式。

在 Python 互動視窗中,雙擊任何繪圖以在檢視器中開啟它,或選擇繪圖左上角的展開按鈕。

Plot Viewer with the Python Interactive window

注意:Python 互動視窗支援渲染使用 matplotlibAltair 建立的繪圖。

變數資源管理器和資料檢視器

在 Python 互動視窗中,可以檢視、檢查和篩選當前 Jupyter 會話中的變數。執行程式碼和單元后,在互動視窗工具欄中選擇 **Variables** 按鈕以開啟變數資源管理器,您將看到當前變數的列表,該列表會隨著程式碼中使用變數而自動更新。

Variables Explorer

有關變數的更多資訊,您還可以雙擊某一行或使用 **Show variable in data viewer** 按鈕,在資料檢視器中檢視變數的更詳細檢視。開啟後,您可以透過搜尋行來篩選值。

Data Viewer

連線到遠端 Jupyter 伺服器

您可以透過連線到遠端 Jupyter 伺服器,將 Jupyter Notebook 中的密集計算任務解除安裝到其他計算機上。連線後,程式碼單元在遠端伺服器上執行,而不是在本地計算機上執行。

要連線到遠端 Jupyter 伺服器

  1. 從命令面板 (⇧⌘P (Windows、Linux Ctrl+Shift+P)) 執行 **Jupyter: Specify local or remote Jupyter server for connections** 命令。

  2. 選擇您希望如何連線到 Jupyter 伺服器。提示提供 Jupyter 伺服器 URI

  3. 如果遠端工作,請在出現提示時提供伺服器的 URI(主機名),並附帶身份驗證令牌,格式為 ?token= URL 引數。(如果您在啟用了身份驗證令牌的情況下在 VS Code 終端中啟動伺服器,帶有令牌的 URL 通常會出現在終端輸出中,您可以從中複製。)或者,您可以在提供 URI 後指定使用者名稱和密碼。

    Prompt to supply a Jupyter server URI

  4. Python 互動視窗透過顯示 URI(在下圖中已模糊處理)來指示程式碼的執行位置

    The Python Interactive window showing that code is running on a remote Jupyter server

注意:為增強安全性,Microsoft 建議為您的 Jupyter 伺服器配置安全預防措施,例如 SSL 和令牌支援。這有助於確保傳送到 Jupyter 伺服器的請求得到驗證,並且與遠端伺服器的連線是加密的。有關保護 Notebook 伺服器的指南,請參閱 Jupyter 文件

將 Jupyter Notebook 轉換為 Python 程式碼檔案

當您激活了已安裝 Jupyter 的環境後,可以在 VS Code 中開啟 Jupyter Notebook 檔案 (.ipynb),然後將其轉換為 Python 程式碼。轉換檔案後,您可以像執行任何其他 Python 檔案一樣執行程式碼,並使用 VS Code 偵錯程式。在 VS Code 中開啟和除錯 Notebook 是一種方便的方法,可以查詢和解決程式碼錯誤,這在 Jupyter Notebook 中直接操作很困難。

當您開啟一個 Notebook 檔案時,Visual Studio Code 會自動在 Notebook 編輯器中開啟它。使用工具欄上的轉換圖示將 Notebook (.ipynb) 檔案轉換為 Python 檔案 (.py)。

Icon to convert a Jupyter notebook file

選擇轉換圖示,然後選擇“Python Script”,等待幾秒鐘,VS Code 會在一個無標題檔案中開啟轉換後的 Notebook。Notebook 的單元格在 Python 檔案中用 # %% 註釋分隔;Markdown 單元格完全轉換為以 # %% [markdown] 為字首的註釋,並在互動視窗中以 HTML 形式與程式碼和圖形等輸出一起呈現。

Jupyter notebook running in VS Code and the Python Interactive window

注意:當您第一次在 Python 檔案中執行程式碼單元時,Python 擴充套件會啟動一個 Jupyter 伺服器。伺服器啟動和 **Python 互動**窗口出現程式碼結果可能需要一些時間。

除錯 Jupyter Notebook

Visual Studio Code 偵錯程式允許您逐步執行程式碼、設定斷點、檢查狀態和分析問題。使用偵錯程式是查詢和糾正 Notebook 程式碼中問題的有效方法。

  1. 在 VS Code 中,啟用一個已安裝 Jupyter 的 Python 環境,如本文開頭所述。

  2. 按照上一節中的描述,將 Notebook 的 .ipynb 檔案匯入到 VS Code 中。(如果您使用基於雲的 Jupyter 環境,如 Azure Notebooks,請先下載檔案。)

  3. 要啟動偵錯程式,請使用以下選項之一

    • 對於整個 Notebook,開啟命令面板 (⇧⌘P (Windows、Linux Ctrl+Shift+P)) 並執行 **Jupyter: Debug Current File in Python Interactive Window** 命令。
    • 對於單個單元,使用出現在單元上方的 **Debug Cell** 裝飾。偵錯程式會專門在該單元的程式碼上啟動。預設情況下,**Debug Cell** 僅步入使用者程式碼。如果您想步入非使用者程式碼,您需要在 Jupyter 擴充套件設定 (⌘, (Windows、Linux Ctrl+,)) 中取消勾選 **Debug Just My Code**。
  4. 要熟悉 VS Code 的通用除錯功能,例如檢查變數、設定斷點和其他活動,請檢視 VS Code 除錯

  5. 當您發現問題時,停止偵錯程式,更正您的程式碼,儲存檔案,然後再次啟動偵錯程式。

  6. 當您確信所有程式碼都正確無誤後。儲存檔案,然後按照下一節的說明匯出 Notebook。然後您可以將該 Notebook 上傳到您的常規 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 會顯示一個提示,您可以透過該提示在瀏覽器中開啟 Notebook。