現已釋出!閱讀關於 11 月新增功能和修復的內容。

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 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 Interactive(Python 互動)視窗中執行相應的單元格。

Code cells running in a Python Interactive window

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

您還可以單擊行號左側的邊距來設定斷點。然後,您可以使用Debug Cell(除錯單元格)來為該程式碼單元格啟動除錯會話。偵錯程式會在斷點處停止執行,並允許您逐行單步執行程式碼並檢查變數(有關詳細資訊,請參閱Debugging)。

其他命令和鍵盤快捷鍵

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

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

使用 Python 互動視窗

前面部分提到的Python Interactive(Python 互動)視窗可以用作獨立的控制檯,用於處理任意程式碼(有或沒有程式碼單元格)。要將該視窗用作控制檯,請使用命令面板中的Jupyter: Create Interactive Window(Jupyter: 建立互動視窗)命令將其開啟。然後,您可以鍵入程式碼,使用 Enter 鍵轉到新行,並使用 Shift+Enter 鍵執行程式碼。

要將該視窗與檔案一起使用,請使用命令面板中的Jupyter: Run Current File in Python Interactive Window(Jupyter: 在 Python 互動視窗中運行當前檔案)命令。

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(Jupyter: 為連線指定本地或遠端 Jupyter 伺服器)命令。

  2. 選擇要連線到 Jupyter 伺服器的方式。Prompt to supply a Jupyter server 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 Interactive(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(Jupyter: 在 Python 互動視窗中除錯當前檔案)命令。
    • 對於單個單元格,使用出現在單元格上方的Debug Cell(除錯單元格)裝飾。偵錯程式專門針對該單元格中的程式碼啟動。預設情況下,Debug Cell 僅會單步進入使用者程式碼。如果您想單步進入非使用者程式碼,則需要在 Jupyter 擴充套件設定(⌘, (Windows, Linux Ctrl+,))中取消選中Debug Just My Code(僅除錯我的程式碼)。
  4. 要熟悉 VS Code 的常規除錯功能,例如檢查變數、設定斷點和其他活動,請參閱VS Code debugging

  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: 將當前 Python 檔案匯出為 Jupyter Notebook):從當前檔案的內容建立一個 Jupyter Notebook,使用 # %%# %% [markdown] 分隔符來指定它們各自的單元格型別。
  • Jupyter: Export Current Python File and Output as Jupyter Notebook(Jupyter: 將當前 Python 檔案和輸出匯出為 Jupyter Notebook):從當前檔案的內容建立一個 Jupyter Notebook,幷包含程式碼單元格的輸出。
  • Jupyter: Export Interactive Window as Jupyter Notebook(Jupyter: 將互動視窗匯出為 Jupyter Notebook):從 Python 互動視窗的內容建立一個 Jupyter Notebook。

匯出內容後,VS Code 會顯示一個提示,您可以透過該提示在瀏覽器中開啟 Notebook。

© . This site is unofficial and not affiliated with Microsoft.