症狀:JupyterLab 4.6 找不到 Python 內核。最快處理方式:先確認啟動服務的 Python,再到目標環境安裝並註冊 ipykernel;不要先重裝 JupyterLab。
這適合內核清單空白、缺少專案環境,或 Notebook 看似啟動卻載入錯誤套件的情況。修復後還要核對 Notebook 實際使用的解譯器及科研依賴。
- 內核清單空白或缺少目標環境的學生,可先釐清服務與內核的關係。
- 切換過虛擬環境或 Python 版本的研究生,可用本文確認 Notebook 連到哪個解譯器。
- 維護 Mac 分析環境的技術支援人員,可參考故障分類與驗收記錄方式。
JupyterLab 4.6 找不到 Python 內核,先分清問題在哪一層
JupyterLab 介面能開啟,不代表它已找到所有 Python 環境。JupyterLab 是操作介面;啟動它的 Python 環境是服務端;Notebook 執行程式碼時使用的 Python,則由所選內核決定。三者相關,但不一定相同。JupyterLab 官方文件說明了 Notebook 文件與內核的關係。
先記下以下資訊,避免把不同故障混成「Jupyter 壞了」:
- JupyterLab 顯示的版本,以及用哪個終端機或指令啟動。
- 啟動服務時所在的 Python 環境;如果有啟動腳本,也要記錄實際指令。
- 內核清單是完全沒有 Python,還是只有某個專案環境缺席。
- 問題發生在新 Notebook、既有 Notebook,還是兩者都有。
「終端機能執行 Python」不是內核已註冊的證據。 Jupyter 透過 kernelspec 找到並啟動內核。使用與 JupyterLab 服務相同的終端環境執行:
jupyter kernelspec list
此指令列出目前可見的內核規格;Jupyter Client 文件也說明了核心規格與內核啟動方式。查看 Jupyter Client 的內核與 kernelspec 說明。
注意:如果服務不是從目前開啟的終端機啟動,這裡看到的結果未必代表服務實際可用的內核。請先回到真正啟動 JupyterLab 的環境查核。
虛擬環境已裝 ipykernel,仍看不到專案內核
常見原因不是「沒有安裝」,而是安裝在另一個 Python 裡,或只安裝了 ipykernel、尚未把該環境註冊成可選內核。Python 虛擬環境會有各自的解譯器與套件;Python 官方文件亦提醒,虛擬環境有自己的路徑與安裝內容。參考 Python venv 文件。
依序檢查:
- 在專案終端機啟用預期環境,確認提示符或環境管理工具顯示的環境名稱。
- 執行
python -c "import sys; print(sys.executable)",記下實際 Python 路徑。 - 執行
python -m pip show ipykernel,確認套件是由這個 Python 找到,而不是另一個環境中的 pip。 - 若該環境沒有 ipykernel,使用該環境的 Python 安裝;接著依官方流程註冊內核。
python -m pip install ipykernel
python -m ipykernel install --user --name project-env --display-name "Python (project-env)"
project-env 是可自行指定的內核識別名稱,Python (project-env) 是可自訂的顯示名稱。IPython 官方文件提供以 python -m ipykernel install 註冊環境的做法;重點是使用目標環境的 Python 執行指令,而不是任意一個終端機裡的 python。查看 IPython 官方內核安裝說明。
註冊後再次執行 jupyter kernelspec list。若目標名稱出現,再回到 JupyterLab 的內核選單選取它。顯示名稱只是標籤,不是解譯器路徑證明:需要核實實際 Python 時,請直接檢查 kernelspec 中的啟動路徑。
Notebook 執行成功,卻載入錯誤 Python 或依賴
內核可以啟動,不等於科研環境正確。Notebook 可能仍連到舊環境,或者套件安裝在另一個 Python;若專案依賴相對路徑,也可能因啟動目錄不同而讀取錯誤檔案。
在問題 Notebook 中執行:
import sys
print(sys.executable)
將輸出路徑與專案預期環境比對。再檢查真正影響分析的套件是否可匯入,並確認它們的版本或安裝位置。例如:
import importlib.util
print(importlib.util.find_spec("numpy"))
將範例中的套件名稱換成專案需要的依賴。若某個套件回傳 None,先確認 Notebook 選中的內核,再在該內核對應的環境安裝依賴。不要把「終端機能匯入」當成 Notebook 也能匯入;兩處可能使用不同的 Python。
既有 Notebook 要改用新環境時,先在新環境註冊內核,再從 Notebook 的內核選單切換。重新啟動內核後檢查 sys.executable、關鍵套件匯入,以及必要的專案路徑。保留原環境,直到分析流程確認可重現。
kernelspec 指向舊路徑或服務與內核不一致
如果內核已列出但啟動失敗,先檢查 kernelspec,而非把它直接判定為 JupyterLab 4.6 的普遍缺陷。環境移動或刪除後,內核規格可能仍指向舊的 Python 路徑;服務和內核若在不同主機,服務端也可能無法存取預期檔案。
Jupyter 的內核規格會包含啟動資訊,例如 argv;其中的執行路徑應與目標環境一致。Jupyter Client 文件說明 kernelspec 的欄位與啟動機制。可先定位規格檔,再核對 argv 指向的 Python 是否存在。不要只根據 display_name 判斷來源。
縮小範圍時,可採取以下處理:
- 在啟動 JupyterLab 的同一環境重新執行
jupyter kernelspec list,確認服務可見的規格。 - 對照規格內的 Python 路徑與專案環境輸出;若環境已移動,使用新環境重新註冊。
- 用不含敏感資料的最小程式碼測試內核能否啟動,再逐步恢復專案程式碼。
- 若服務由不同終端機或啟動器執行,記錄啟動指令與主機位置,確認內核規格在該服務環境下可見。
JupyterLab 的啟動方式和伺服器設定也會影響服務從哪裡載入設定及執行。Jupyter Server 設定文件可供核對伺服器端配置。若使用終端機啟動,JupyterLab 官方的執行與啟動說明亦可作為檢查依據。
提醒:不要在尚未確認解譯器與依賴前重裝全域 Python,或覆蓋原專案套件。這些做法可能改變其他 Notebook 的執行環境,卻未必修正服務讀取錯誤 kernelspec 的問題。
常見疑問:內核清單與 Notebook 解譯器
JupyterLab 開得起來,但內核清單沒有 Python,該先檢查什麼?
先在啟動 JupyterLab 的終端機確認服務使用哪個 Python,再執行 jupyter kernelspec list 查看該服務能找到的內核規格。若清單沒有目標環境,請在該環境安裝 ipykernel 並註冊;單在終端機成功執行 Python,不能證明 JupyterLab 已找到它。
虛擬環境裡已安裝 ipykernel,為什麼仍看不到該環境?
ipykernel 安裝完成不等於環境已註冊為 Jupyter 內核。先啟用預期的虛擬環境,確認 python -c 輸出的解譯器路徑,再用該環境的 Python 執行內核安裝指令。若服務啟動在另一個環境,也要確認它能讀取新註冊的 kernelspec。
Notebook 選了 Python 內核,怎樣確認實際用的是哪個解譯器?
在 Notebook 執行 import sys; print(sys.executable),把輸出的路徑與專案預期環境比較。再檢查關鍵套件能否匯入及其版本或安裝位置。內核顯示名稱可以自訂,不能單靠名稱判斷它實際啟動的 Python。
更換 Python 環境後,舊 Notebook 怎樣改用新內核?
先在新環境安裝並註冊 ipykernel,接著在舊 Notebook 的內核選單中選擇新註冊的項目。重新啟動內核後,以 sys.executable 和專案依賴檢查結果驗證。保留原環境與 Notebook 檔案,確認分析流程可重現後再清理舊環境。
修復完成後,留下可重現的驗收紀錄
完成修復後,依序確認:
- [ ] 目標 Notebook 已選取預期的 Python 內核。
- [ ]
sys.executable顯示的路徑屬於專案環境。 - [ ] 關鍵科研依賴可在 Notebook 中匯入。
- [ ] 不含敏感資料的最小分析步驟可以執行。
- [ ] 記下 Python 路徑、內核名稱、依賴狀態與必要的啟動資訊,供日後重現。
JupyterLab 官方變更紀錄中,穩定文件截至 2026 年 11 月 4 日標示 4.6.5;這是版本資訊,不代表該版本必然造成內核問題。發布或排障前仍應對照官方穩定版變更紀錄,確認文件與指令沒有變動。
以故障範圍選擇下一步
| 選項 | 適用情況 | 優先處理方式 | 主要檢查點 |
|---|---|---|---|
| 修正目前服務環境 | 清單沒有任何可用 Python 內核 | 從啟動 JupyterLab 的終端機檢查服務環境與可見規格 | 服務使用的 Python、jupyter kernelspec list |
| 註冊專案環境 | 其他內核可用,只有某個虛擬環境缺席 | 在目標環境安裝並註冊 ipykernel | Python 路徑、kernelspec 是否出現 |
| 修正 Notebook 選擇 | 內核啟動正常,但依賴或結果不符 | 核對 Notebook 內的解譯器與套件 | sys.executable、關鍵依賴、專案路徑 |
| 評估遠端 Mac | 專案確實需要 macOS 驗證,實驗室沒有可用 Mac | 先確認遠端環境的交付方式、連線途徑與資料規範 | 專案能否在該環境執行、是否符合資料要求 |
若問題只在 Python 環境或 kernelspec,通常應先修正目前環境;遠端 Mac 不是內核故障的通用修復方式。若研究流程確實需要 macOS,而實驗室沒有可用 Mac,可先閱讀 HireVM 的 Mac 使用指南,再依 方案比較資訊確認遠端使用方式是否符合專案。遠端環境適合短期驗證或補足設備,但不一定適合需要實體介面、固定本機資料流程,或長期持續重負載的工作。若只需短期取得 Mac 測試環境,可查看 HireVM 的遠端 Mac 方案;選擇前仍須按實際交付與連線方式確認,不能假設它會自動解決 Python 內核問題。
常見問題
JupyterLab 開得起來,但內核清單沒有 Python,該先檢查什麼?
先在啟動 JupyterLab 的終端機確認服務使用哪個 Python,再執行 jupyter kernelspec list 查看該服務能找到的內核規格。若清單沒有目標環境,請在該環境安裝 ipykernel 並註冊;單在終端機成功執行 Python,不能證明 JupyterLab 已找到它。
虛擬環境裡已安裝 ipykernel,為什麼仍看不到該環境?
ipykernel 安裝完成不等於環境已註冊為 Jupyter 內核。先啟用預期的虛擬環境,確認 python -c 輸出的解譯器路徑,再用該環境的 Python 執行內核安裝指令。若服務啟動在另一個環境,也要確認它能讀取新註冊的 kernelspec。
Notebook 選了 Python 內核,怎樣確認實際用的是哪個解譯器?
在 Notebook 執行 import sys; print(sys.executable),把輸出的路徑與專案預期環境比較。再檢查關鍵套件能否匯入及其版本或安裝位置。內核顯示名稱可以自訂,不能單靠名稱判斷它實際啟動的 Python。
更換 Python 環境後,舊 Notebook 怎樣改用新內核?
先在新環境安裝並註冊 ipykernel,接著在舊 Notebook 的內核選單中選擇新註冊的項目。重新啟動內核後,以 sys.executable 和專案依賴檢查結果驗證。保留原環境與 Notebook 檔案,確認分析流程可重現後再清理舊環境。
需要更穩定的 Mac 環境?改用 HireVM
當本機 Python 環境難以整理或需要隔離測試時,可租用 HireVM 獨享 Apple Silicon 實體 Mac,自行配置解譯器、套件與工作環境。
