根本原因是 Hydrogen 未找到可用 Jupyter 内核,需安装 ipykernel 并执行 python -m ipykernel install --user --name python3 --display-name "Python 3" 注册内核;常见坑包括 conda 环境未激活、PATH 不生效、Matplotlib 需 %matplotlib inline、Watch 仅限当前命名空间变量、内核需按项目显式指定。

Hydrogen 装不上或启动报错:Kernel not found
根本原因不是 Hydrogen 没装好,而是它压根没找到可用的 Jupyter 内核——哪怕你本地装了 jupyter,也可能只是 notebook 包,缺了核心内核包。
必须确保已运行:
pip install ipykernel再执行:
python -m ipykernel install --user --name python3 --display-name "Python 3"这一步注册内核到 Jupyter 系统里,Hydrogen 才能扫描到。
常见坑:
- 用 conda 环境但没在该环境里运行
ipykernel install,结果 Hydrogen 只看到 base 环境的内核 - 系统有多个 Python 版本,
pip和python不指向同一解释器,导致内核装到“看不见”的地方 - Atom 是通过
apm启动的,而某些 shell 初始化脚本(如~/.zshrc)里的PATH修改对 apm 不生效,得手动在 Atom 设置里填绝对路径:/Users/xxx/miniconda3/bin/jupyter
代码执行没反应,或 plt.show() 不出图
Hydrogen 默认不自动显示 Matplotlib 图形,也不会拦截 show() 调用——它依赖内核后端是否启用交互式绘图支持。
正确做法是,在执行绘图前加一行:
%matplotlib inline(注意是 IPython 魔法命令,不是 Python 语句),且必须在同一个 cell / 执行块中。
其他情况:
- 用
plotly时,offline.iplot()已废弃,应改用fig.show()(需确保内核装了plotly且版本 ≥5.0) - 如果用了
plt.ioff()或设置了非交互后端(如Agg),图形会静默丢弃,需重置:import matplotlib; matplotlib.use('TkAgg') - Atom 窗口缩放比例异常(如 macOS Retina 屏设为 200%)可能导致图像渲染区为空白,可临时调成 100% 测试
想监视变量但 Watch Expression 一直显示 undefined
Watch 功能不是全局作用域监听器,它只在当前 kernel 的执行上下文中有效,且依赖变量已被定义并存在于当前命名空间。
典型失效场景:
- 变量在函数内部定义(如
def f(): x = 1),watchx必然失败——函数退出后变量即销毁 - 执行的是
run file(整文件运行),但 watch 表达式写在文件顶部,而实际变量在底部才赋值,watch 在执行前就求值了 - 用了
del x或exec()动态执行字符串,破坏了静态变量追踪链
print(x) + Ctrl+Enter 单行执行,实时性一样,还不依赖 UI 状态。
切换项目时总连错内核,比如 Python 3.9 项目用了 3.11 的 kernel
Hydrogen 默认按名称匹配内核(如 python3),不感知虚拟环境路径。不同项目用不同 Python 版本时,必须显式指定内核,不能靠自动发现。
操作路径:Cmd+Shift+P → 输入 Hydrogen: Select Kernel → 选带完整路径或环境名的条目(如 python3 (myproject-env))。
关键细节:
- 内核名称来自
ipykernel install --name xxx的--name参数,建议按项目命名(如--name myproj-py39),别都用默认python3 - Hydrogen 不保存 per-project 内核偏好,每次重启 Atom 或打开新窗口都要重选一次
- 如果用 Poetry 或 pdm,记得先
poetry env info --path,再进该路径运行python -m ipykernel install...,否则 kernel 会漏装依赖

















