必须先正确选择并配置python解释器及ipykernel,vs code才能运行notebook或# %%分块;否则即使装了jupyter也无法识别内核。

选错 Python 解释器,Notebook 就根本跑不起来
VS Code 不会自动跨环境找 jupyter,哪怕你全局 pip install jupyter 了也没用——它只认你当前选中的解释器里装的包。所以第一步不是装扩展,而是让 VS Code 知道“该用哪个 Python 来跑 notebook”。
- 按
Ctrl+Shift+P(Win)或Cmd+Shift+P(Mac),输入并执行Python: Select Interpreter - 从列表里选一个带
ipykernel的环境,比如./venv/bin/python或C:\Users\X\anaconda3\envs\ds\python.exe;如果没看到,说明那个环境没装ipykernel - 在该环境下终端中运行:
python -m ipykernel install --user --name ds-env --display-name "Python 3 (ds-env)"(--name不能含空格,--display-name才是下拉菜单里显示的名字) - 重启 VS Code 或用命令面板执行
Developer: Reload Window,再打开.ipynb文件,右上角内核选择器里就该出现你刚注册的名字了
内核显示 “Python 3 (unavailable)” 或根本找不到选项
这是最常被忽略的信号:VS Code 找到了解释器路径,但没在该环境里发现可通信的 Jupyter 内核进程。常见原因不是没装 jupyter,而是缺 ipykernel,或者注册时用了错误用户权限。
- 别只查
jupyter --version,要进目标环境终端,运行:python -m pip list | grep ipykernel(macOS/Linux)或python -m pip list | findstr ipykernel(Windows) - 如果没输出,立刻装:
python -m pip install ipykernel(不要用conda install混着来,尤其在 pip 环境里) - 注册命令里漏掉
--user?那 kernel 可能装到系统级位置,VS Code 无权读取;加了--user后,kernel 会写入~/.local/share/jupyter/kernels/(Linux/macOS)或%USERPROFILE%\AppData\Roaming\jupyter\kernels\(Windows) - 检查工作区设置里有没有误配:
jupyter.jupyterServerType设成了remote,或填了remoteJupyterServerUri—— 这会让 VS Code 强制走远程模式,本地 kernel 直接被忽略
新建 .ipynb 文件后右上角没内核可选,或点运行没反应
不是插件没装好,大概率是 Jupyter 扩展没真正激活,或 Python 扩展没随它一起加载。VS Code 的 Jupyter 支持依赖 Python 扩展提供底层解释器桥接,两者必须共存。
- 打开扩展面板(
Ctrl+Shift+X),搜Jupyter,确认安装的是 Microsoft 官方版(ID:ms-toolsai.jupyter,图标是紫色火焰) - 再搜
Python,确保ms-python.python也已启用——新版 Jupyter 扩展会自动提示安装它,但有时静默失败 - 如果刚装完就试,首次启动可能卡顿 5–10 秒(VS Code 在后台静默运行
python -m pip install ipykernel),别急着关窗口 - 运行单元格前,务必确认右上角显示的是类似
Python 3 (ds-env)的名字,而不是灰色的Select Kernel;后者说明内核未连接,点它手动选一次即可触发连接
想用 # %% 分块执行 .py 文件,但没反应
VS Code 的 # %% 功能本质是把普通脚本当 notebook 用,但它和 .ipynb 共享同一套内核管理逻辑——没选对内核,分块就只是注释。
- 先打开一个
.py文件,在顶部写一行# %%,保存 - 右上角内核选择器必须已设为有效内核(如
Python 3 (ds-env)),否则“Run Cell”按钮是灰的 - 光标放在
# %%块内,按Ctrl+Enter(Win)或Cmd+Enter(Mac);不要用Shift+Enter,那是 notebook 里“运行并插入新单元格”的快捷键 - 执行后会在侧边栏弹出交互式窗口,变量、图表、
print()输出全在里面;这个窗口和 notebook 共享同一个内核状态,import pandas as pd在第一个块里执行后,后续块直接可用pd
最容易被跳过的其实是环境隔离细节:你在终端里 conda activate ds-env 后装的包,VS Code 不一定认得出来——它只看解释器路径本身是否指向该环境的 python 可执行文件。路径对了,一切才开始生效。











