vscode中.ipynb显示“python 3 (unavailable)”是因为内核未在当前选中的python环境里安装并注册ipykernel:需先激活目标环境,运行python -m pip install ipykernel,再执行python -m ipykernel install --user --name myenv --display-name "python (myenv)",确保--name无空格/中文、路径不含中文,验证jupyter kernelspec list后重启整个vscode窗口。

VSCode里打开.ipynb却显示“Python 3 (unavailable)”
这不是插件没装好,而是内核根本没注册进当前 Python 环境。VSCode 的 Python: Select Interpreter 只告诉编辑器用哪个 python 命令,不等于 Jupyter 扩展能调用它。
- 先确认目标环境已激活:比如
conda activate myenv或source venv/bin/activate - 运行
python -m pip list | grep ipykernel(macOS/Linux)或python -m pip list | findstr ipykernel(Windows),无输出就立刻执行python -m pip install ipykernel - 必须在该环境下运行注册命令:
python -m ipykernel install --user --name myenv --display-name "Python (myenv)";--name不能含空格或中文,--display-name才是右上角看到的名字 - 注册后路径应落在:
~/.local/share/jupyter/kernels/(Linux/macOS)或%USERPROFILE%\AppData\Roaming\jupyter\kernels\(Windows);路径含中文或空格会导致静默失败 - 验证是否成功:
jupyter kernelspec list输出里要有myenv条目,且路径干净 - 必须关闭并重启整个 VSCode 窗口(不是“重载窗口”),否则新 kernel 不会出现
右上角内核下拉菜单里找不到名字,或点了没反应
VSCode 不扫描全局,只读固定路径下的 kernel 定义。常见原因不是插件问题,而是配置被覆盖或路径不可达。
- 检查设置里有没有误配
"jupyter.jupyterServerType": "remote"或填了remoteJupyterServerUri—— 这会让 VSCode 强制走远程模式,本地 kernel 直接被忽略 - 确保两个扩展已启用:
ms-toolsai.jupyter(Jupyter)和ms-python.python(Python),缺一不可 - 如果之前注册过但名字错了,手动删掉对应目录(如
~/.local/share/jupyter/kernels/myenv),再重跑python -m ipykernel install - 不要在 base 环境装完
ipykernel再切到子环境——注册命令必须在目标环境终端中执行
单元格运行报 ModuleNotFoundError
这是典型的“环境错位”:VSCode 界面显示选中了 ./venv/bin/python,但 kernel 启动时加载的是系统 Python 的 site-packages。
- 在 notebook 里先运行:
import sys; print(sys.executable),对比输出路径和你在Python: Select Interpreter中选的路径是否一致 - 如果不一致,说明 kernel 绑定错误——删掉对应 kernel 目录,重新注册
- 避免混用包管理器:在 conda 环境里优先用
conda install ipykernel,而非pip install ipykernel,否则可能引发 kernel 启动失败 - 确认
jupyter命令本身可用:jupyter --version应有输出;若报错,需在目标环境中pip install jupyter
图表不显示、弹窗卡死或内核崩溃
默认 matplotlib 后端在 VSCode 中容易触发 GUI 阻塞,尤其在远程或无桌面环境。
- 第一个 cell 必须加:
%matplotlib inline;别用%matplotlib widget或%matplotlib qt - 如果非要交互式图表,装
ipympl:pip install ipympl,然后重启内核;但注意:ipympl在 Remote-SSH 或某些 Linux 桌面下可能无法渲染 - 内核频繁崩溃?检查是否用了未预检的大数据集加载(如
pd.read_csv未加nrows=1000)、变量命名冲突(如覆盖了list或dict)、或未清理内存(del df+gc.collect())
--user 被漏掉、或者 --name 里多了个空格。这些细节一旦出错,VSCode 就只会安静地显示 “Python 3 (unavailable)”。











