在 VS Code 中使用 Jupyter Notebooks
Jupyter (原名 IPython Notebook) 是一個開放原始碼專案,可讓您輕鬆地在稱為筆記本的單一畫布上結合 Markdown 文字和可執行的 Python 原始碼。Visual Studio Code 原生支援使用 Jupyter Notebooks,以及透過 Python 程式碼檔案。本主題涵蓋 Jupyter Notebooks 的原生支援,並示範如何
- 建立、開啟和儲存 Jupyter Notebooks
- 使用 Jupyter 程式碼儲存格
- 使用變數總管和資料檢視器檢視、檢查和篩選變數
- 連線至遠端 Jupyter 伺服器
- 偵錯 Jupyter Notebook
設定您的環境
若要在 Jupyter Notebooks 中使用 Python,您必須在 VS Code 中啟動 Anaconda 環境,或另一個已安裝 Jupyter 套件的 Python 環境。若要選取環境,請從命令選擇區使用 Python: 選取解譯器 命令 (⇧⌘P (Windows, Linux Ctrl+Shift+P))。
一旦啟動適當的環境,您就可以建立和開啟 Jupyter Notebook、連線至遠端 Jupyter 伺服器以執行程式碼儲存格,並將 Jupyter Notebook 匯出為 Python 檔案。
工作區信任
開始使用 Jupyter Notebooks 時,您會想要確保在受信任的工作區中工作。有害程式碼可能會嵌入在筆記本中,而 工作區信任 功能可讓您指出哪些資料夾及其內容應允許或限制自動程式碼執行。
如果您嘗試在 VS Code 於執行 受限模式 的不受信任工作區中開啟筆記本,則您將無法執行儲存格,且豐富的輸出將會隱藏。
建立或開啟 Jupyter Notebook
您可以透過從命令選擇區執行 建立: 新建 Jupyter Notebook 命令 (⇧⌘P (Windows, Linux Ctrl+Shift+P)),或在您的工作區中建立新的 .ipynb
檔案,來建立 Jupyter Notebook。
接下來,使用右上角的核心選取器選取核心。
選取核心之後,位於每個程式碼儲存格右下角的語言選取器將會自動更新為核心支援的語言。
如果您有現有的 Jupyter Notebook,您可以透過在檔案上按一下滑鼠右鍵並使用 VS Code 開啟,或透過 VS Code 檔案總管開啟。
執行儲存格
執行單一程式碼儲存格
新增程式碼後,您可以使用儲存格左邊的 執行 圖示執行儲存格,而輸出將會顯示在程式碼儲存格下方。
若要執行選取的程式碼儲存格,您也可以在命令和編輯模式中使用鍵盤快速鍵。Ctrl+Enter 執行目前選取的儲存格。Shift+Enter 執行目前選取的儲存格,並在正下方插入新的儲存格 (焦點移至新的儲存格)。Alt+Enter 執行目前選取的儲存格,並在正下方插入新的儲存格 (焦點停留在目前的儲存格)。
執行多個程式碼儲存格
執行多個程式碼儲存格可以透過多種方式完成。您可以使用 Notebook 編輯器主要工具列中的雙箭頭來執行 Notebook 內的所有儲存格,或選取目前程式碼儲存格上方或下方的 全部執行、全部執行於上方 或 全部執行於下方。
執行區段中的儲存格
為了更輕鬆地執行筆記本中的相關儲存格,您可以使用 執行區段中的儲存格 動作來執行由 Markdown 區段標題分組在一起的儲存格。此動作可在筆記本大綱檢視和固定捲動元素上使用。
在固定捲動元素中,在您選擇的標題上按一下滑鼠右鍵,然後透過操作功能表中的動作執行區段。在大綱檢視中,選取在滑鼠停留在上方或選取時出現的工具列圖示,然後透過呈現的動作執行單一儲存格或儲存格區段。
儲存您的 Jupyter Notebook
您可以使用鍵盤快速鍵 Ctrl+S 或 檔案 > 儲存 來儲存您的 Jupyter Notebook。
匯出您的 Jupyter Notebook
您可以將 Jupyter Notebook 匯出為 Python 檔案 (.py
)、PDF 或 HTML 檔案。若要匯出,請在主要工具列上選取 ... > 匯出。然後,您會看到檔案格式選項的下拉式清單。
注意: 若要匯出為 PDF,您必須安裝 TeX。如果您沒有安裝,當您選取 PDF 選項時,系統會通知您需要安裝。此外,請注意,如果您的 Notebook 中有僅限 SVG 的輸出,它們將不會顯示在 PDF 中。若要在 PDF 中包含 SVG 圖形,請確保您的輸出包含非 SVG 影像格式,否則您可以先匯出為 HTML,然後使用瀏覽器另存為 PDF。
在 Notebook 編輯器中使用程式碼儲存格
Notebook 編輯器讓您能夠輕鬆地在 Jupyter Notebook 中建立、編輯和執行程式碼儲存格。
建立程式碼儲存格
依預設,空白筆記本會包含一個空白程式碼儲存格供您開始使用,而現有的筆記本會在底部放置一個。將您的程式碼新增至空白程式碼儲存格即可開始。
msg = "Hello world"
print(msg)
程式碼儲存格模式
使用程式碼儲存格時,儲存格可以處於三種狀態:未選取、命令模式和編輯模式。程式碼儲存格左側的垂直長條和編輯器邊框會顯示儲存格的目前狀態。當沒有長條可見時,儲存格為未選取。當儲存格選取時,它可以處於命令模式或編輯模式。
在命令模式中,實心垂直長條會出現在儲存格的左側。可以對儲存格進行操作,並接受鍵盤命令。
在編輯模式中,實心垂直長條會與儲存格編輯器周圍的邊框結合。可以修改儲存格的內容 (程式碼或 Markdown)。
若要切換模式,您可以使用鍵盤或滑鼠。在鍵盤上,按下 Enter 鍵可移至編輯模式,或按下 Esc 鍵可移至命令模式。使用滑鼠時,按一下儲存格左側的垂直長條,或按一下程式碼儲存格中程式碼/Markdown 區域的外部。
新增其他程式碼儲存格
您可以使用主要工具列、儲存格的新增儲存格工具列 (在滑鼠停留在上方時可見) 和透過鍵盤命令來新增程式碼儲存格。
若要在目前選取的儲存格下方新增儲存格,請使用主要工具列或儲存格的滑鼠停留在上方工具列中的加號圖示。
當程式碼儲存格處於命令模式時,請使用 A 鍵在上方新增儲存格,並使用 B 鍵在選取的儲存格下方新增儲存格。
選取程式碼儲存格
您可以使用滑鼠或鍵盤上的向上/向下箭頭鍵來變更選取的程式碼儲存格。當程式碼儲存格處於命令模式時,您也可以使用 J 鍵 (向下) 和 K 鍵 (向上)。
選取多個程式碼儲存格
若要選取多個儲存格,請從選取模式中的一個儲存格開始。填滿的背景表示已選取的儲存格。若要選取連續的儲存格,請按住 Shift 鍵,然後按一下您想要選取的最後一個儲存格。若要選取任何儲存格群組,請按住 Ctrl 鍵,然後按一下您想要新增至選取範圍的儲存格。
移動程式碼儲存格
您可以在筆記本中透過拖放來上下移動儲存格。對於程式碼儲存格,拖放區域位於儲存格編輯器的左側,如下所示。對於轉譯的 Markdown 儲存格,您可以按一下任何位置來拖放儲存格。
若要移動多個儲存格,您可以使用選取範圍中任何儲存格中的相同拖放區域。
鍵盤快速鍵 Alt+Arrow 也會移動一個或多個選取的儲存格。
刪除程式碼儲存格
若要刪除程式碼,您可以使用程式碼儲存格工具列中的 刪除 圖示。當選取的程式碼儲存格處於命令模式時,您可以使用鍵盤快速鍵 dd。
還原上次變更
您可以使用 z 鍵來還原先前的變更,例如,如果您意外進行了編輯,您可以將其還原為先前的正確狀態,或者如果您意外刪除了儲存格,您可以復原它。
在程式碼和 Markdown 之間切換
Notebook 編輯器可讓您輕鬆地在 Markdown 和程式碼之間變更程式碼儲存格。選取儲存格右下角的語言選取器可讓您在 Markdown 與 (如果適用) 選取的核心支援的任何其他語言之間切換。
您也可以使用鍵盤來變更儲存格類型。當儲存格選取且處於命令模式時,M 鍵會將儲存格類型切換為 Markdown,而 Y 鍵會將儲存格類型切換為程式碼。
設定 Markdown 後,您可以將 Markdown 格式的內容輸入到程式碼儲存格。
若要轉譯 Markdown 儲存格,您可以選取儲存格工具列中的核取記號,或使用鍵盤快速鍵 Ctrl+Enter 和 Shift+Enter。
清除輸出或重新啟動/中斷核心
如果您想要清除所有程式碼儲存格輸出或重新啟動/中斷核心,您可以使用主要 Notebook 編輯器工具列來完成。
啟用/停用行號
當您處於命令模式時,您可以使用 L 鍵在單一程式碼儲存格內啟用或停用行號。
若要切換整個筆記本的行號,請在任何儲存格上處於命令模式時使用 Shift+L。
目錄
若要瀏覽您的筆記本,請開啟活動列中的檔案總管。然後開啟側邊列中的 大綱 索引標籤。
您可以使用大綱檢視中的篩選控制項來包含 Markdown 標題、程式碼儲存格和程式碼儲存格符號。篩選器對應於下列設定
notebook.outline.showMarkdownHeadersOnly
notebook.outline.showCodeCells
notebook.outline.showCodeCellSymbols
注意: 依預設,大綱只會顯示 Markdown。若要顯示程式碼儲存格,請啟用下列設定:Notebook > 大綱:顯示程式碼儲存格。
Jupyter Notebook 編輯器中的 IntelliSense 支援
Python Jupyter Notebook 編輯器視窗具有完整的 IntelliSense – 程式碼完成、成員清單、方法快速資訊和參數提示。您在 Notebook 編輯器視窗中輸入的效率與在程式碼編輯器中一樣高。
變數總管和資料檢視器
在 Python Notebook 中,可以檢視、檢查、排序和篩選目前 Jupyter 工作階段中的變數。在執行程式碼和儲存格之後,選取主要工具列中的 變數 圖示,您將會看到目前變數的清單,這些變數會隨著變數在程式碼中使用而自動更新。變數窗格將會在筆記本底部開啟。
資料檢視器
如需有關變數的其他資訊,您也可以按兩下資料列,或使用變數旁邊的 在資料檢視器中顯示變數 按鈕,以取得資料檢視器中變數的更詳細檢視。
或者,您可以使用其他擴充功能 (例如 Data Wrangler) 提供的資料檢視體驗。Data Wrangler 擴充功能提供豐富的使用者介面來顯示有關您資料的深入資訊,並協助您執行資料分析、品質檢查、轉換等等。在我們的文件中深入了解 Data Wrangler 擴充功能。
篩選資料列
可以透過在每個資料行頂端的文字方塊中輸入來篩選資料檢視器中的資料列。輸入您想要搜尋的字串,就會找到資料行中包含該字串的任何資料列
如果您想要尋找完全相符的項目,請在篩選器前面加上 '='
更複雜的篩選可以透過輸入 規則運算式 來完成
儲存繪圖
若要從筆記本儲存繪圖,只需將滑鼠停留在輸出上方,然後選取右上角的 儲存 圖示。
注意: 支援轉譯使用 matplotlib 和 Altair 建立的繪圖。
自訂 Notebook 差異比較
在幕後,Jupyter Notebooks 是 JSON 檔案。JSON 檔案中的區段會轉譯為由三個元件組成的儲存格:輸入、輸出和中繼資料。使用以行基底差異比較來比較筆記本中所做的變更很困難且難以剖析。適用於筆記本的豐富差異比較編輯器可讓您輕鬆查看儲存格每個元件的變更。
您甚至可以自訂要在差異比較檢視中顯示的變更類型。在右上角,選取工具列中的溢位功能表項目,以自訂您想要包含的儲存格元件。輸入差異將永遠顯示。
若要深入了解 VS Code 內的 Git 整合,請造訪 VS Code 中的原始檔控制。
偵錯 Jupyter Notebook
有兩種不同的方式可以偵錯 Jupyter 筆記本:一種稱為「逐行執行」的較簡單模式,以及完整偵錯模式。
注意: 這兩個功能都需要 ipykernel 6+。如需有關安裝或升級 ipykernel 的詳細資訊,請參閱 此 Wiki 頁面。
逐行執行
「逐行執行」可讓您一次執行一個儲存格中的一行,而不會受到其他 VS Code 偵錯功能的干擾。若要開始,請選取儲存格工具列中的 逐行執行 按鈕
使用相同的按鈕可前進一個陳述式。您可以選取儲存格的 停止 按鈕以提早停止,或選取工具列中的 繼續 按鈕以繼續執行到儲存格結尾。
偵錯儲存格
如果您想要使用 VS Code 中支援的完整偵錯功能集,例如中斷點以及逐步執行至其他儲存格和模組的功能,您可以使用完整的 VS Code 偵錯工具。
- 首先,按一下筆記本儲存格的左邊界來設定您需要的任何中斷點。
- 然後,在 執行 按鈕旁的選單中選取 偵錯儲存格 按鈕。這會在偵錯工作階段中執行儲存格,並會在執行的任何程式碼中的中斷點暫停,即使程式碼位於不同的儲存格或 .py 檔案中也是如此。
- 您可以像平常在 VS Code 中一樣使用偵錯檢視、偵錯主控台和偵錯工具列中的所有按鈕。
請注意,偵錯 Jupyter 筆記本中的儲存格不會使用 launch.json 中的任何偵錯組態。它可以改為透過設定 (例如 jupyter.debugJustMyCode) 自訂。
搜尋筆記本
您可以使用鍵盤快速鍵 Ctrl/Cmd + F 來搜尋筆記本 (或透過篩選搜尋選項來搜尋筆記本的某些部分)。按一下 篩選 選項 (漏斗圖示) 以跨以下項目搜尋
- Markdown 儲存格輸入 (Markdown 來源)
- Markdown 儲存格輸出 (轉譯的 Markdown)
- 程式碼儲存格輸入 (程式碼儲存格來源)
- 程式碼儲存格輸出 (儲存格輸出)
依預設,筆記本搜尋只會篩選儲存格輸入。
連線至遠端 Jupyter 伺服器
您可以透過連線至遠端 Jupyter 伺服器,將 Jupyter Notebook 中的密集運算卸載到其他電腦。連線後,程式碼儲存格會在遠端伺服器而非本機電腦上執行。
若要連線至遠端 Jupyter 伺服器
-
開啟筆記本右上角的 核心選取器 按鈕 (或從命令選擇區執行 Notebook: 選取 Notebook 核心 命令)。
-
選取 現有的 Jupyter 伺服器 選項以連線至現有的 Jupyter 伺服器。
-
若要第一次連線至現有的伺服器,請選取 輸入執行中 Jupyter 伺服器的 URL。
-
當系統提示 輸入執行中 Jupyter 伺服器的 URL 時,請提供伺服器的 URI (主機名稱),並包含使用
?token=
URL 參數的驗證權杖。(如果您在已啟用驗證權杖的 VS Code 終端機中啟動伺服器,則通常會從終端機輸出中看到包含權杖的 URL,您可以從該處複製 URL。) 或者,您可以在提供 URI 後指定使用者名稱和密碼。
注意: 為了提高安全性,Microsoft 建議使用安全性預防措施 (例如 SSL 和權杖支援) 來設定您的 Jupyter 伺服器。這有助於確保傳送至 Jupyter 伺服器的要求已通過驗證,且與遠端伺服器的連線已加密。如需有關保護筆記本伺服器的指引,請參閱 Jupyter 文件。
資料科學設定檔範本
設定檔 可讓您根據目前的專案或工作快速切換您的擴充功能、設定和 UI 版面配置。為了協助您開始使用 Jupyter Notebooks,您可以使用 資料科學設定檔範本,這是一個精選的設定檔,其中包含實用的擴充功能、設定和程式碼片段。您可以按原樣使用設定檔範本,或將其用作起點,以進一步自訂您自己的工作流程。
您透過 設定檔 > 建立設定檔... 下拉式清單選取設定檔範本
選取設定檔範本後,您可以檢閱設定和擴充功能,如果您不想將個別項目包含在新的設定檔中,可以移除這些項目。根據範本建立新的設定檔後,對設定、擴充功能或 UI 所做的變更會保存在您的設定檔中。