内核选错或未注册会导致vs code notebook无法运行;需手动为指定python环境安装并注册ipykernel,重启vs code后才能在右上角选择对应内核。

内核选不对,Notebook根本跑不起来
VS Code 不会自动跨环境找 jupyter 或 ipykernel,它只认你当前选中的 Python 解释器里装了什么。哪怕系统全局 pip install jupyter 成功了,如果没在目标虚拟环境中装 ipykernel,右上角的 kernel 选择器就只会显示 “Python 3 (unavailable)” 或干脆空白。
- 先按
Ctrl+Shift+P运行Python: Select Interpreter,从列表里挑出你要用的环境(比如./venv/bin/python或anaconda3/envs/ds/python.exe) - 打开终端(确保已激活该环境),运行:
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才是下拉菜单里看到的名字) - 重启 VS Code 窗口(不是重载窗口),再打开
.ipynb文件,右上角才会有你刚注册的选项
运行单元格没反应?先看 kernel 是否真的连上了
VS Code 的 Notebook 界面不会像网页版那样弹出 “Kernel died” 提示,而是静默卡住:光标不动、输出区空白、变量面板不更新——这大概率是内核进程已退出,但 UI 没刷新状态。
- 检查底部状态栏:是否显示类似
Python 3.11.5 (myenv)?如果没有,说明 kernel 没真正连接成功 - 打开输出面板(
Ctrl+Shift+U),切换到Jupyter日志,搜Failed to start the kernel或No module named 'ipykernel' - 别依赖自动安装:VS Code 首次启动时可能静默执行
pip install ipykernel,但容易卡住几十秒甚至失败;建议手动装好再开 notebook - 快捷键别记混:
Shift+Enter是运行并跳转,Ctrl+Enter是只运行当前单元格——新手常按错导致以为“没反应”
想调试数据清洗逻辑?直接在 notebook 单元格里打断点
VS Code 的调试器能无缝接入 Jupyter 内核,不需要把代码复制到 .py 文件里再调试。在 notebook 单元格中打上断点(行号左侧点一下),点上方绿色“运行并调试”按钮,就能单步执行、看 df.shape、查 np.isnan(x).sum(),和调试普通脚本完全一致。
- 断点必须打在有可执行代码的行上,Markdown 单元格或空行无效
- 变量面板(
View > Variables)在普通 notebook 执行时**不自动填充**,只在 F5 启动调试后才实时显示;想快速看值,还是得写一行df.head()或print(type(x)) - 绘图如
plt.show()默认在内嵌视图渲染,支持缩放/下载,但交互式库如plotly需确保已安装且内核里能 import 成功
用 # %% 写脚本也能当 notebook 用,Git 友好很多
不用非得保存为 .ipynb 文件。在任意 .py 文件里用 # %% 分隔代码块,保存后点击右上角「Run Cell」或按 Ctrl+Enter,效果等同于 notebook 单元格——而且文件仍是纯文本,Git diff 清晰,团队协作不冲突。
-
# %%块支持 Markdown 注释(# %% [markdown]),但不支持 LaTeX 渲染或表格自动美化 - 这种写法仍可用
python script.py直接运行,兼容性比.ipynb强得多 - 注意:
# %%必须独占一行,前后不能有空格或注释;否则 VS Code 不识别为 cell 分隔符
内核注册路径、解释器匹配、断点生效条件——这些地方没有容错空间,错一个环节整个流程就卡住。很多人反复重装扩展,其实问题早在第一次 python -m ipykernel install 就埋下了。











