vscode运行jupyter notebook需手动注册ipykernel:仅选择python解释器不够,必须在目标环境执行python -m ipykernel install并重启vscode;否则报“no kernel found”或modulenotfounderror;推荐用# %%分隔的.py文件替代.ipynb以提升git协作体验。

VSCode 能跑 Jupyter Notebook,但不是装个插件就完事——缺了 ipykernel 注册这步,90% 的 “No kernel found” 和单元格灰色不可执行都白忙活。
为什么选了解释器还显示“No kernel available”
VSCode 的 Python: Select Interpreter 只告诉编辑器用哪个 python 命令,不等于 Jupyter 扩展能调用它。Jupyter 实际靠 ipykernel 实例通信,而这个实例必须显式注册到 jupyter kernelspec 目录里。
- 在终端先激活目标环境:
conda activate ds或source venv/bin/activate - 再运行:
python -m ipykernel install --user --name ds --display-name "Python (ds)" - 检查是否成功:
jupyter kernelspec list,输出里要有ds且路径不含空格或中文 - 必须重启 VSCode(不是重载窗口),否则内核选择器不刷新
运行单元格报 ModuleNotFoundError 怎么办
这是典型的“环境错位”:VSCode 界面显示选中了 ./venv/bin/python,但 kernel 启动时加载的是系统 Python 的 site-packages。
微软正式发布 Visual Studio Code 1.118 版本 。本次更新重点强化了 AI 开发体验与企业管理能力,其中最引人注目的是新增 Copilot CLI 远程控制功能,允许开发者通过手机或网页远程监控和接管 AI 会话 。同时,为了提高 AI 的运行性价比,新版本优化了令牌缓存策略以降低成本 。此外,1.118 版还引入了 Chronicle 本地历史追踪、TypeScript 7.0 支持以及更严格的企业级访问管控 。
- 先在 notebook 里运行:
import sys; print(sys.executable),确认路径是否与你选的解释器一致 - 如果不一致,说明旧内核残留干扰,删掉对应目录:
~/.local/share/jupyter/kernels/ds(Linux/macOS)或%USERPROFILE%\AppData\Roaming\jupyter\kernels\ds(Windows) - 重新在目标环境中执行
python -m ipykernel install,别在base环境里装完再切过去 - 避免混用:
conda install ipykernel和pip install ipykernel不要交叉使用,尤其在 conda 环境里优先用conda
用 # %% + .py 替代 .ipynb 更靠谱
直接编辑 .ipynb 在 Git 协作中极易冲突:输出、metadata、cell id 全是 JSON 差异,diff 不可读;而 # %% 分隔的纯文本 .py 文件天然适配版本控制。
- 新建
explore.py,写两段代码,中间加# %% - 光标停在任一段内,按
Shift+Enter,VSCode 自动开交互式窗口执行 - 变量进
Variables面板,DataFrame双击可表格预览 - 不会意外保存输出污染文件,也不怕 kernel 重启丢上下文
真正容易被忽略的是:VSCode 不会自动把你已装 jupyter 的环境“变成可用内核”,python -m ipykernel install 是每次换环境、重装 Python、或升级 conda 后都得重复的操作——这不是一次性配置,而是环境生命周期里的常规动作。










