🚀 在 VS Code 中

VS Code 中的 Jupyter Notebook

Jupyter (先前稱為 IPython Notebook) 是一個開放原始碼專案,可讓您在稱為 notebook 的單一畫布上輕鬆組合 Markdown 文字和可執行的 Python 原始碼。Visual Studio Code 原生支援使用 Jupyter Notebook,以及透過Python 程式碼檔案。本主題涵蓋 Jupyter Notebook 的原生支援,並示範如何

  • 建立、開啟和儲存 Jupyter Notebook
  • 使用 Jupyter 程式碼儲存格
  • 使用變數總管和資料檢視器檢視、檢查和篩選變數
  • 連線到遠端 Jupyter 伺服器
  • 偵錯 Jupyter Notebook

設定您的環境

若要在 Jupyter Notebook 中使用 Python,您必須在 VS Code 中啟動 Anaconda 環境,或您已在其中安裝Jupyter 套件的其他 Python 環境。若要選取環境,請使用命令選擇區中的 Python: 選取解譯器 命令 (⇧⌘P (Windows、Linux Ctrl+Shift+P))。

一旦啟動適當的環境,您就可以建立和開啟 Jupyter Notebook、連線到遠端 Jupyter 伺服器以執行程式碼儲存格,以及將 Jupyter Notebook 匯出為 Python 檔案。

工作區信任

開始使用 Jupyter Notebook 時,您會想要確保您在信任的工作區中工作。工作區信任功能可讓您指出哪些資料夾及其內容應允許或限制自動程式碼執行,因為有害的程式碼可能會內嵌在 Notebook 中。

如果您嘗試在 VS Code 處於不受信任的工作區且執行受限模式時開啟 Notebook,您將無法執行儲存格,而且豐富的輸出將會隱藏。

建立或開啟 Jupyter Notebook

您可以透過從命令選擇區執行 建立: 新增 Jupyter Notebook 命令 (⇧⌘P (Windows、Linux Ctrl+Shift+P)),或在您的工作區中建立新的 .ipynb 檔案來建立 Jupyter Notebook。

Blank Jupyter Notebook

接下來,使用右上角的核心選取器選取核心。

Kernel Picker

選取核心之後,位於每個程式碼儲存格右下角的語言選取器將會自動更新為核心支援的語言。

Language Picker

如果您有現有的 Jupyter Notebook,您可以透過在檔案上按一下滑鼠右鍵並使用 VS Code 開啟,或透過 VS Code 檔案總管來開啟它。

執行儲存格

執行單一程式碼儲存格

一旦新增您的程式碼,您可以使用程式碼儲存格左側的 執行 圖示來執行儲存格,且輸出將會顯示在程式碼儲存格下方。

Run Jupyter code cell

若要執行選取的程式碼儲存格,您也可以在命令和編輯模式中使用鍵盤快速鍵。Ctrl+Enter 會執行目前選取的儲存格。Shift+Enter 會執行目前選取的儲存格,並立即在下方插入新的儲存格 (焦點移至新的儲存格)。Alt+Enter 會執行目前選取的儲存格,並立即在下方插入新的儲存格 (焦點停留在目前的儲存格)。

執行多個程式碼儲存格

可以透過多種方式完成執行多個程式碼儲存格。您可以使用 Notebook 編輯器主工具列中的雙箭頭來執行 Notebook 內的所有儲存格,或透過選取目前程式碼儲存格上方或下方的 全部執行全部執行於上方全部執行於下方

Run multiple code cells

執行區段中的儲存格

若要更輕鬆地執行 Notebook 中相關的儲存格,您可以透過 在區段中執行儲存格 動作來執行依 Markdown 區段標題分組在一起的儲存格。此動作可在 Notebook 大綱檢視和黏性捲動元素上使用。

在黏性捲動元素內,在您選擇的標題上按一下滑鼠右鍵,然後透過操作功能表中的動作來執行區段。在大綱檢視內,選取在hover或選取時顯示的工具列圖示,然後透過顯示的動作來執行單一儲存格或儲存格區段。

儲存您的 Jupyter Notebook

您可以使用鍵盤快速鍵 Ctrl+S檔案 > 儲存 來儲存您的 Jupyter Notebook。

匯出您的 Jupyter Notebook

您可以將 Jupyter Notebook 匯出為 Python 檔案 (.py)、PDF 或 HTML 檔案。若要匯出,請在主工具列上選取 ... > 匯出。然後,您會看到檔案格式選項的下拉式清單。

Convert Jupyter Notebook to Python file

注意: 針對 PDF 匯出,您必須安裝TeX。如果您沒有安裝,當您選取 PDF 選項時,系統會通知您需要安裝它。此外,請注意,如果您的 Notebook 中有僅限 SVG 的輸出,它們將不會顯示在 PDF 中。若要在 PDF 中包含 SVG 圖形,請確保您的輸出包含非 SVG 影像格式,或者您可以先匯出為 HTML,然後使用瀏覽器儲存為 PDF。

在 Notebook 編輯器中使用程式碼儲存格

Notebook 編輯器讓您能夠輕鬆地在 Jupyter Notebook 中建立、編輯和執行程式碼儲存格。

建立程式碼儲存格

根據預設,空白 Notebook 將會有一個空的程式碼儲存格供您開始使用,而現有的 Notebook 將會在底部放置一個。將您的程式碼新增至空的程式碼儲存格以開始使用。

msg = "Hello world"
print(msg)

Simple Jupyter code cell

程式碼儲存格模式

使用程式碼儲存格時,儲存格可以處於三種狀態:未選取、命令模式和編輯模式。程式碼儲存格左側的垂直線和編輯器邊界會顯示儲存格的目前狀態。當沒有線條可見時,表示儲存格為未選取。當儲存格為選取時,它可以處於命令模式或編輯模式。

Unselected Jupyter code cell

在命令模式中,實心垂直線會顯示在儲存格的左側。儲存格可以進行操作並接受鍵盤命令。

Code cell in command mode

在編輯模式中,實心垂直線會與儲存格編輯器周圍的邊界結合。可以修改儲存格的內容 (程式碼或 Markdown)。

Code cell in edit mode

若要切換模式,您可以使用鍵盤或滑鼠。在鍵盤上,按下 Enter 鍵以移至編輯模式,或按下 Esc 鍵以移至命令模式。使用滑鼠時,按一下儲存格左側的垂直線,或程式碼儲存格中程式碼/Markdown 區域的外部。

新增其他程式碼儲存格

您可以使用主工具列、儲存格的新增儲存格工具列 (hover時可見) 以及透過鍵盤命令來新增程式碼儲存格。

Add code cells

若要在目前選取儲存格下方新增新的儲存格,請使用主工具列或儲存格 hover 工具列中的加號圖示。

當程式碼儲存格處於命令模式時,請使用 A 鍵在選取儲存格上方新增儲存格,並使用 B 鍵在選取儲存格下方新增儲存格。

選取程式碼儲存格

您可以使用滑鼠或鍵盤上的向上/向下箭頭鍵來變更選取的程式碼儲存格。當程式碼儲存格處於命令模式時,您也可以使用 J 鍵 (向下) 和 K 鍵 (向上)。

選取多個程式碼儲存格

若要選取多個儲存格,請從處於選取模式的一個儲存格開始。填滿的背景表示選取的儲存格。若要選取連續的儲存格,請按住 Shift 鍵,然後按一下您想要選取的最後一個儲存格。若要選取任何一組儲存格,請按住 Ctrl 鍵,然後按一下您想要新增至選取範圍的儲存格。

Multiselected cells

移動程式碼儲存格

您可以在 Notebook 內透過拖放來向上或向下移動儲存格。對於程式碼儲存格,拖放區域位於儲存格編輯器的左側,如下所示。對於呈現的 Markdown 儲存格,您可以按一下任何位置來拖放儲存格。

Move a code cell

若要移動多個儲存格,您可以使用選取範圍中包含之任何儲存格中的相同拖放區域。

鍵盤快速鍵 Alt+方向鍵 也會移動一個或多個選取的儲存格。

刪除程式碼儲存格

若要刪除程式碼,您可以使用程式碼儲存格工具列中的 刪除 圖示。當選取的程式碼儲存格處於命令模式時,您可以使用鍵盤快速鍵 dd

Delete a code cell

復原您上次的變更

您可以使用 z 鍵來復原您先前的變更,例如,如果您不小心進行了編輯,您可以將其復原到先前的正確狀態,或者如果您不小心刪除了儲存格,您可以復原它。

在程式碼和 Markdown 之間切換

Notebook 編輯器可讓您輕鬆地在 Markdown 和程式碼之間變更程式碼儲存格。選取儲存格右下角的語言選取器可讓您在 Markdown 和 (如果適用) 選取核心支援的任何其他語言之間切換。

Change language

您也可以使用鍵盤來變更儲存格類型。當選取儲存格且處於命令模式時,M 鍵會將儲存格類型切換為 Markdown,而 Y 鍵會將儲存格類型切換為程式碼。

一旦設定 Markdown,您就可以在程式碼儲存格中輸入 Markdown 格式化的內容。

Raw Markdown displayed in code cell

若要呈現 Markdown 儲存格,您可以選取儲存格工具列中的核取記號,或使用鍵盤快速鍵 Ctrl+EnterShift+Enter

How to render Markdown

Rendered Markdown displayed in code cell

清除輸出或重新啟動/中斷核心

如果您想要清除所有程式碼儲存格輸出或重新啟動/中斷核心,您可以使用主 Notebook 編輯器工具列來完成。

Notebook Toolbar

啟用/停用行號

當您處於命令模式時,您可以使用 L 鍵來啟用或停用單一程式碼儲存格內的行號。

Line numbers enabled in code cell

若要切換整個 Notebook 的行號,請在任何儲存格上處於命令模式時使用 Shift+L

Line numbers enabled for notebook

目錄

若要導覽您的 Notebook,請開啟活動列中的檔案總管。然後開啟側邊列中的 大綱 索引標籤。

Table of contents

您可以使用大綱檢視中的篩選控制項來包含 Markdown 標題、程式碼儲存格和程式碼儲存格符號。篩選器對應至下列設定

  • notebook.outline.showMarkdownHeadersOnly
  • notebook.outline.showCodeCells
  • notebook.outline.showCodeCellSymbols

注意: 根據預設,大綱只會顯示 Markdown。若要顯示程式碼儲存格,請啟用下列設定:Notebook > 大綱: 顯示程式碼儲存格

Jupyter Notebook 編輯器中的 IntelliSense 支援

Python Jupyter Notebook 編輯器視窗具有完整的 IntelliSense – 程式碼完成、成員清單、方法的快速資訊和參數提示。您可以像在程式碼編輯器中一樣,在 Notebook 編輯器視窗中輸入內容,並具有相同的生產力。

IntelliSense support

變數總管和資料檢視器

在 Python Notebook 中,可以檢視、檢查、排序和篩選目前 Jupyter 會話中的變數。透過在執行程式碼和儲存格之後選取主工具列中的 變數 圖示,您會看到目前變數的清單,該清單會在程式碼中使用變數時自動更新。變數窗格將會在 Notebook 底部開啟。

Variable Explorer

Variable Explorer

資料檢視器

如需有關變數的其他資訊,您也可以按兩下資料列,或使用變數旁的 在資料檢視器中顯示變數 按鈕,以取得資料檢視器中變數的更詳細檢視。

Data Viewer

或者,您可以使用其他擴充功能 (例如 Data Wrangler) 提供的資料檢視體驗。Data Wrangler 擴充功能提供豐富的使用者介面,以顯示有關您資料的深入解析,並協助您執行資料分析、品質檢查、轉換等等。深入了解我們文件中的 Data Wrangler 擴充功能

篩選資料列

可以透過在每個資料行頂端的文字方塊中輸入內容來完成篩選資料檢視器中的資料列。輸入您想要搜尋的字串,並且會找到資料行中具有該字串的任何資料列

Data Viewer

如果您想要尋找完全相符的項目,請在您的篩選器前面加上 '='

Data Viewer

更複雜的篩選可以透過輸入規則運算式來完成

Data Viewer

儲存繪圖

若要從您的 Notebook 儲存繪圖,只需將滑鼠hover在輸出上方,然後選取右上角的 儲存 圖示即可。

Save output

注意: 支援呈現使用 matplotlibAltair 建立的繪圖。

自訂 Notebook 差異比較

在幕後,Jupyter Notebook 是 JSON 檔案。JSON 檔案中的區段會呈現為儲存格,這些儲存格包含三個組件:輸入、輸出和中繼資料。使用以行為基礎的差異比較來比較 Notebook 中所做的變更很困難且難以剖析。Notebook 的豐富差異比較編輯器可讓您輕鬆查看儲存格每個組件的變更。

您甚至可以自訂您想要在差異比較檢視中顯示的變更類型。在右上角,選取工具列中的溢位功能表項目,以自訂您想要包含的儲存格組件。輸入差異將永遠顯示。

Custom notebook diffing

若要深入了解 VS Code 內的 Git 整合,請造訪VS Code 中的原始檔控制

偵錯 Jupyter Notebook

有兩種不同的方式可以偵錯 Jupyter Notebook:稱為「逐行執行」的較簡單模式,以及完整偵錯模式。

注意: 這兩個功能都需要 ipykernel 6+。請參閱此 wiki 頁面,以取得有關安裝或升級 ipykernel 的詳細資訊。

逐行執行

逐行執行可讓您一次執行一個程式碼行,而不會受到其他 VS Code 偵錯功能的干擾。若要開始,請選取儲存格工具列中的 逐行執行 按鈕

Run by line button

使用相同的按鈕以前進一個陳述式。您可以選取儲存格 停止 按鈕來提早停止,或選取工具列中的 繼續 按鈕來繼續執行到儲存格結尾。

偵錯儲存格

如果您想要使用 VS Code 中支援的完整偵錯功能集,例如中斷點以及逐步執行到其他儲存格和模組的能力,您可以使用完整的 VS Code 偵錯工具。

  1. 首先,透過按一下 Notebook 儲存格的左邊界來設定您需要的任何中斷點。
  2. 然後,選取 執行 按鈕旁邊功能表中的 偵錯儲存格 按鈕。這會在偵錯會話中執行儲存格,並會在執行的任何程式碼中的中斷點暫停,即使它位於不同的儲存格或 .py 檔案中也是如此。
  3. 您可以像平常在 VS Code 中一樣使用偵錯檢視、偵錯主控台和偵錯工具列中的所有按鈕。

請注意,在 Jupyter Notebook 中偵錯儲存格不會使用 launch.json 中的任何偵錯組態。您可以改為透過設定 (例如 jupyter.debugJustMyCode) 來自訂它。

Debug cell button

搜尋 Notebook

您可以使用鍵盤快速鍵 Ctrl/Cmd + F 來搜尋 Notebook (或透過篩選搜尋選項來搜尋部分 Notebook)。按一下篩選器選項 (漏斗圖示) 以搜尋

  • Markdown 儲存格輸入 (Markdown 原始碼)
  • Markdown 儲存格輸出 (呈現的 Markdown)
  • 程式碼儲存格輸入 (程式碼儲存格原始碼)
  • 程式碼儲存格輸出 (儲存格輸出)

根據預設,Notebook 搜尋僅篩選儲存格輸入。

Search options

連線到遠端 Jupyter 伺服器

您可以透過連線到遠端 Jupyter 伺服器,將 Jupyter Notebook 中的密集計算卸載到其他電腦。連線後,程式碼儲存格會在遠端伺服器上執行,而不是在本機電腦上執行。

若要連線到遠端 Jupyter 伺服器

  1. 開啟 Notebook 右上角的核心選取器按鈕 (或從命令選擇區執行 Notebook: 選取 Notebook 核心 命令)。

    Notebook kernel picker

  2. 選取 現有的 Jupyter 伺服器 選項以連線到現有的 Jupyter 伺服器。

    Select existing Jupyter server

  3. 若要第一次連線到現有的伺服器,請選取 輸入執行中 Jupyter 伺服器的 URL

    Choose to connect to an existing server

  4. 當系統提示您 輸入執行中 Jupyter 伺服器的 URL 時,請提供伺服器的 URI (主機名稱),其中包含以 ?token= URL 參數包含的驗證權杖。(如果您在 VS Code 終端機中使用已啟用驗證權杖啟動伺服器,則具有權杖的 URL 通常會出現在您可以從中複製它的終端機輸出中。) 或者,您可以在提供 URI 之後指定使用者名稱和密碼。

    Prompt to supply a Jupyter server URI

注意: 為了提高安全性,Microsoft 建議您使用安全性預防措施 (例如 SSL 和權杖支援) 來設定 Jupyter 伺服器。這有助於確保傳送至 Jupyter 伺服器的要求已通過驗證,且與遠端伺服器的連線已加密。如需有關保護 Notebook 伺服器的指引,請參閱 Jupyter 文件

資料科學設定檔範本

設定檔可讓您根據目前的專案或工作快速切換您的擴充功能、設定和 UI 版面配置。為了協助您開始使用 Jupyter Notebook,您可以使用資料科學設定檔範本,這是一個經過策劃的設定檔,其中包含有用的擴充功能、設定和程式碼片段。您可以按原樣使用設定檔範本,或將其用作起點,以進一步自訂以符合您自己的工作流程。

您可以透過 設定檔 > 建立設定檔... 下拉式清單選取設定檔範本

Create Profile dropdown with profile templates

一旦您選取設定檔範本,您可以檢閱設定和擴充功能,如果您不想將個別項目包含在您的新設定檔中,可以移除它們。根據範本建立新的設定檔之後,對設定、擴充功能或 UI 所做的變更會保存在您的設定檔中。