You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在AWS SageMaker中将Jupyter Notebook导出为HTML并存入S3

使用nbconvert.HTMLExporter实现Jupyter Notebook转HTML

前置准备

确保已安装nbconvert,未安装的话执行:

pip install nbconvert

代码实现示例

下面是完整的实现逻辑,包含Notebook转HTML、以及将生成的HTML上传到AWS S3的步骤(和你现有的图片上传逻辑兼容):

from nbconvert import HTMLExporter
import nbformat
import boto3
from six.moves.urllib.parse import urlparse
import os

# 自动获取当前Notebook文件名(适配VS Code环境,Jupyter环境可替换为globals()['__file__'])
notebook_filename = os.path.basename(globals()['__vsc_ipynb_file__'])

# 加载Notebook内容
with open(notebook_filename, "r", encoding="utf-8") as f:
    nb = nbformat.read(f, as_version=4)

# 初始化HTML导出器,可选择不同模板样式
html_exporter = HTMLExporter(template_name="classic")  # 可选值:'lab'/'basic'等

# 执行转换,获取HTML内容和关联资源
html_content, resources = html_exporter.from_notebook_node(nb)

# 保存HTML到本地文件
html_file = "australia_covid_analysis_report.html"
with open(html_file, "w", encoding="utf-8") as f:
    f.write(html_content)

# 上传HTML到AWS S3,复用现有S3操作逻辑
s3_uri = 's3://ca-experiment/output/reports/'
parsed_url = urlparse(s3_uri)
bucket_name = parsed_url.netloc
s3_key = f"{parsed_url.path.lstrip('/')}{html_file}"

with open(html_file, 'rb') as f:
    s3 = boto3.resource('s3')
    s3.Bucket(bucket_name).put_object(
        Key=s3_key,
        Body=f,
        ContentType='text/html'
    )

关键细节

  • 不同环境下获取当前Notebook文件名的方式:
    • Jupyter Notebook/Lab:可手动指定文件名,或通过内核变量获取
    • VS Code:使用globals()['__vsc_ipynb_file__']
  • 模板参数template_name说明:
    • classic:匹配传统Jupyter Notebook界面风格
    • lab:适配Jupyter Lab的界面样式
    • basic:生成无额外样式的极简HTML
  • 转换后的HTML会自动包含Notebook中所有代码块、输出结果(包括你生成的COVID病例图表),无需额外处理图片引用

命令行快捷转换方式

如果不需要在代码中集成转换逻辑,直接用命令行即可快速完成:

jupyter nbconvert --to html your_notebook_name.ipynb

内容的提问来源于stack exchange,提问作者Sophia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 06:03:35