VSCode 中不存在 jupyter.notebook.open 命令,正确方式是打开 .ipynb 文件或运行“Jupyter: Create New Notebook”;Shift+Enter 无输出多因内核未连接或代码异常;模块导入需手动调整 sys.path 或工作目录;输出膨胀应清理或禁用自动保存输出。

为什么 jupyter.notebook.open 不起作用?
VSCode 里没有 jupyter.notebook.open 这个命令——它根本不存在。你搜到的可能是旧版插件文档或混淆了 JupyterLab 的命令。VSCode 的 Notebook 功能由官方 Jupyter 扩展驱动,启动方式是打开后缀为 .ipynb 的文件,或用命令面板运行 Jupyter: Create New Notebook。
- 常见错误现象:在命令面板里输 “open notebook” 没反应,或点右键没“Run in Notebook”选项 → 先确认是否已安装并启用
Jupyter扩展(不是 Python 扩展单独就能支持 Notebook) - 使用场景:新建 Notebook 必须通过命令面板或资源管理器双击
.ipynb文件;直接拖 Python 文件进 VSCode 不会自动转成 Notebook - 兼容性影响:VSCode 1.84+ 对 Notebook 渲染更稳定,但若用 Remote-SSH 连接远程服务器,需确保服务端已安装
ipykernel,且执行过python -m ipykernel install --user
Shift+Enter 运行单元格没输出?
这是最常卡住人的一步:按了 Shift+Enter,光标跳到下个单元格,但啥也没打印出来。核心原因通常是内核没连上,或者当前单元格压根没执行(比如被注释、空行、或语法错误卡在解析阶段)。
- 检查右下角状态栏:看到
Python 3.x.x旁边有个圆点,绿色表示已连接内核,灰色或红色说明断开 → 点它可重新选择内核或重启 - 容易踩的坑:复制粘贴代码时带了不可见字符(尤其从网页复制),导致
SyntaxError: invalid character;建议粘贴后全选 →Ctrl+Shift+P→Developer: Toggle Developer Tools看 Console 是否报错 - 参数差异:VSCode 默认用
ipykernel,不是python -m notebook那套;所以%matplotlib inline能用,但%run some_script.py依赖路径必须相对于当前工作区根目录,不是 Notebook 所在目录
如何让 Notebook 识别项目里的 src/ 模块?
写到一半想 import 自己写的模块,结果报 ModuleNotFoundError —— 因为 Notebook 的默认工作目录是文件所在目录,不是你期望的项目根目录,且不会自动把 src/ 加进 sys.path。
- 实操建议:在第一个代码单元格顶部加这几行(别省略
os.chdir):
import os import sys os.chdir(os.path.join(os.path.dirname(os.getcwd()), 'src')) sys.path.insert(0, os.getcwd())
.ipynb 文件所在目录;而多数项目结构是 project/notebooks/explore.ipynb 和 project/src/utils.py,不改目录就找不到 src
pip install -e . 安装了本地包,可改用 import sys; sys.path.append('..'),但要注意相对路径易错保存后 .ipynb 文件体积暴涨?
一个空 Notebook 保存几次后变成几十 MB,打开变慢,Git 提交困难——大概率是单元格输出里存了大图、DataFrame 表格或模型权重对象。VSCode 默认会把所有输出(包括 plt.show() 的图、df.head() 的表格)一并序列化进 JSON。
立即学习“Python免费学习笔记(深入)”;
- 立即缓解:命令面板运行
Jupyter: Clear All Outputs,再手动保存;或关掉自动保存输出:在settings.json加"jupyter.askForKernelRestart": false和"jupyter.outputScrolling": false - 长期规避:对绘图加
plt.close();对大 DataFrame 用df.head(10).to_string()替代直接 print;避免在 Notebook 里torch.load(...)加载完整模型 - 容易被忽略的地方:即使清空输出,历史输出元数据仍可能残留;推荐配合 Git 使用
.gitattributes把.ipynb设为filter=nbstrip,自动过滤输出再提交



















