Python 互動式視窗
Jupyter (先前稱為 IPython Notebook) 是一個開放原始碼專案,可讓您輕鬆地在稱為 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: 選取解譯器 命令。
一旦啟動適當的環境,您就可以建立及執行類似 Jupyter 的程式碼儲存格、連線到遠端 Jupyter 伺服器以執行程式碼儲存格,以及將 Python 檔案匯出為 Jupyter Notebook。
Jupyter 程式碼儲存格
您可以使用 # %%
註解在 Python 程式碼中定義類似 Jupyter 的程式碼儲存格
# %%
msg = "Hello World"
print(msg)
# %%
msg = "Hello again"
print(msg)
注意:請務必將上方顯示的程式碼儲存在副檔名為 .py 的檔案中。
當 Python 擴充功能偵測到程式碼儲存格時,它會新增 執行儲存格 和 偵錯儲存格 CodeLens 裝飾項。第一個儲存格也包含 在下方執行,而所有後續儲存格都包含 在上方執行
注意: 預設情況下,偵錯儲存格 只會逐步執行使用者程式碼。如果您想要逐步執行非使用者程式碼,您需要在 Jupyter 擴充功能設定 (⌘, (Windows、Linux Ctrl+,)) 中取消選取 僅偵錯我的程式碼。
執行儲存格 僅適用於一個程式碼儲存格。在下方執行 (顯示在第一個儲存格上) 會執行檔案中的所有程式碼。在上方執行 適用於所有程式碼儲存格,直到但不包含具有裝飾項的儲存格。例如,您可以使用 在上方執行 在執行特定儲存格之前初始化執行階段環境的狀態。
選取命令會啟動 Jupyter (如有必要,可能需要一分鐘),然後在 Python 互動式 視窗中執行適當的儲存格
您也可以使用 (Ctrl+Enter) 或 Python: 在 Python 終端機中執行選取範圍/行 命令 (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: 建立互動式視窗 命令開啟它。然後您可以輸入程式碼,使用 Enter 移至新行,並使用 Shift+Enter 執行程式碼。
若要搭配檔案使用視窗,請使用命令選擇區中的 Jupyter: 在 Python 互動式視窗中執行目前檔案 命令。
IntelliSense
Python 互動式視窗具有完整的 IntelliSense – 程式碼完成、成員清單、方法的快速資訊和參數提示。在 Python 互動式視窗中輸入與在程式碼編輯器中輸入一樣有效率。
繪圖檢視器
繪圖檢視器可讓您更深入地處理繪圖。在檢視器中,您可以平移、縮放及瀏覽目前工作階段中的繪圖。您也可以將繪圖匯出為 PDF、SVG 和 PNG 格式。
在 Python 互動式視窗中,按兩下任何繪圖以在檢視器中開啟它,或選取繪圖左上角的展開按鈕。
注意: Python 互動式視窗支援轉譯使用 matplotlib 和 Altair 建立的繪圖。
變數總管和資料檢視器
在 Python 互動式視窗中,可以檢視、檢查及篩選目前 Jupyter 工作階段中的變數。在執行程式碼和儲存格之後,選取互動式視窗工具列中的 變數 按鈕以開啟變數總管,您會看到目前變數的清單,該清單會在程式碼中使用變數時自動更新。
如需有關變數的其他資訊,您也可以按兩下資料列或使用 在資料檢視器中顯示變數 按鈕,以在資料檢視器中查看變數的更詳細檢視。開啟後,您可以透過搜尋資料列來篩選值。
連線到遠端 Jupyter 伺服器
您可以透過連線到遠端 Jupyter 伺服器,將 Jupyter Notebook 中的密集運算卸載到其他電腦。連線後,程式碼儲存格會在遠端伺服器而非本機電腦上執行。
若要連線到遠端 Jupyter 伺服器
-
從命令選擇區 (⇧⌘P (Windows、Linux Ctrl+Shift+P)) 執行 Jupyter: 指定本機或遠端 Jupyter 伺服器以進行連線 命令。
-
選取您想要如何連線到 Jupyter 伺服器。
-
如果遠端工作,請在出現提示時提供伺服器的 URI (主機名稱),以及包含在
?token=
URL 參數中的驗證權杖。(如果您在 VS Code 終端機中啟動伺服器並啟用驗證權杖,則通常包含權杖的 URL 會出現在終端機輸出中,您可以從中複製它。) 或者,您可以在提供 URI 後指定使用者名稱和密碼。 -
Python 互動式視窗會顯示 URI (在下圖中已模糊化) 來指示程式碼的執行位置
注意: 為了提高安全性,Microsoft 建議使用 SSL 和權杖支援等安全性預防措施來設定 Jupyter 伺服器。這有助於確保傳送至 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)。
選取轉換圖示,然後選取「Python 指令碼」,等待幾秒鐘,然後 VS Code 會在未命名的檔案中開啟轉換後的 Notebook。Notebook 的儲存格在 Python 檔案中以 # %%
註解分隔;Markdown 儲存格會完全轉換為以 # %% [markdown]
開頭的註解,並在互動式視窗中與程式碼和輸出 (例如圖形) 一起轉譯為 HTML
注意: 第一次在 Python 檔案中執行程式碼儲存格時,Python 擴充功能會啟動 Jupyter 伺服器。伺服器可能需要一些時間才能啟動,且 Python 互動式 視窗才會顯示程式碼的結果。
偵錯 Jupyter Notebook
Visual Studio Code 偵錯工具可讓您逐步執行程式碼、設定中斷點、檢查狀態和分析問題。使用偵錯工具是尋找和修正 Notebook 程式碼中問題的實用方法。
-
在 VS Code 中,啟動已安裝 Jupyter 的 Python 環境,如本文開頭所述。
-
如上一節所述,將 Notebook 的
.ipynb
檔案匯入 VS Code。(如果您使用雲端式 Jupyter 環境 (例如 Azure Notebooks),請先下載檔案。) -
若要啟動偵錯工具,請使用下列其中一個選項
- 針對整個 Notebook,開啟命令選擇區 (⇧⌘P (Windows、Linux Ctrl+Shift+P)) 並執行 Jupyter: 在 Python 互動式視窗中偵錯目前檔案 命令。
- 針對個別儲存格,使用顯示在儲存格上方的 偵錯儲存格 裝飾項。偵錯工具特別在該儲存格中的程式碼上啟動。預設情況下,偵錯儲存格 只會逐步執行使用者程式碼。如果您想要逐步執行非使用者程式碼,您需要在 Jupyter 擴充功能設定 (⌘, (Windows、Linux Ctrl+,)) 中取消選取 僅偵錯我的程式碼。
-
若要熟悉 VS Code 的一般偵錯功能 (例如檢查變數、設定中斷點和其他活動),請檢閱 VS Code 偵錯。
-
當您發現問題時,請停止偵錯工具、修正程式碼、儲存檔案,然後再次啟動偵錯工具。
-
當您確認所有程式碼都正確時。儲存檔案,然後依照下一節所述匯出 Notebook。然後,您可以將 Notebook 上傳到您的一般 Jupyter 環境。
匯出 Jupyter Notebook
除了開啟 Jupyter Notebook 之外,您也可以使用命令選擇區 (⇧⌘P (Windows、Linux Ctrl+Shift+P)) 中的下列其中一個命令,將 VS Code 中 Python 檔案的內容匯出到 Jupyter Notebook (具有 .ipynb
副檔名)。
- Jupyter: 將目前的 Python 檔案匯出為 Jupyter Notebook:從目前檔案的內容建立 Jupyter Notebook,並使用
# %%
和# %% [markdown]
分隔符號來指定其各自的儲存格類型。 - Jupyter: 將目前的 Python 檔案和輸出匯出為 Jupyter Notebook:從目前檔案的內容建立 Jupyter Notebook,並包含程式碼儲存格的輸出。
- Jupyter: 將互動式視窗匯出為 Jupyter Notebook:從 Python 互動式視窗的內容建立 Jupyter Notebook。
匯出內容後,VS Code 會顯示提示,您可以透過該提示在瀏覽器中開啟 Notebook。