jupyter nbconvert是唯一稳定、可复现的html导出方式;gui菜单常卡顿或漏内容,不加--execute则无输出,需指定--html-mathjax-url解决离线公式显示问题,且应避免中文路径以确保兼容性。

jupyter nbconvert 是唯一稳定、可复现的导出路径,GUI 菜单(File → Download as → HTML)在多数环境里会卡住、漏图表、不渲染公式,甚至根本没反应。
不加 --execute 就没有输出,HTML 里全是空单元格
jupyter nbconvert --to html notebook.ipynb 默认只转结构,不运行代码——所有 print()、图表、display() 都不会出现在 HTML 里。
必须显式加 --execute 才能嵌入实际运行结果:
jupyter nbconvert --to html --execute notebook.ipynb- 如果 notebook 依赖外部数据或 API,确保执行时环境一致(比如同个 conda env)
- 执行失败会中断导出,并报错类似
CellExecutionError,此时 HTML 可能不完整 - 想跳过某几个单元格不执行?给它们加
tags:在 Jupyter Lab 里选中单元格 → 右侧属性栏加 tagno-execute,再用--execute --allow-errors继续跑
离线打不开公式?MathJax 加载方式错了
默认生成的 HTML 从 CDN 加载 MathJax,双击打开(file:// 协议)或内网环境会因 CORS 失败,导致 $$E=mc^2$$ 显示为纯文本。
- 最简修复:本地拷贝一份 MathJax(比如解压到项目根目录
mathjax/),然后指定路径:jupyter nbconvert --to html --execute --html-mathjax-url="./mathjax/tex-chtml.js" notebook.ipynb - 不想每次输参数?改全局配置:
jupyter nbconvert --generate-config,再编辑~/.jupyter/jupyter_nbconvert_config.py,加一行:c.HTMLExporter.mathjax_url = "./mathjax/tex-chtml.js"
中文路径或文件名导致报错或乱码
Windows 或某些 shell 下,notebook_测试.ipynb 这类含中文的路径常触发 UnicodeDecodeError 或找不到文件。
- 直接规避:把 notebook 放到纯英文路径下(比如
D:/projects/report.ipynb) - 输出名也别用中文:
--output report_final.html,别写--output 报告.html - 如果非得处理中文路径,终端先切编码(Windows PowerShell):
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
但不如直接改路径省心
导出后手动改 HTML 样式或删元素,等于放弃可复现性——下次重跑 nbconvert 就覆盖了。真要定制外观,该用 --template 指向自定义 Jinja2 模板,而不是碰生成的 HTML 文件。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











