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

使用Jupyter Schedule调度任务报错:module 'jinja2' has no attribute 'Markup'

解决Jupyter Schedule报错module 'jinja2' has no attribute 'Markup'的方案

问题原因

Jinja2 3.0及以上版本把Markup类迁移到了markupsafe库中,而Jupyter Schedule的旧版本代码仍在直接调用jinja2.Markup,当你的环境里Jinja2版本较高时就会触发这个属性错误。直接运行Jupyter Lab时没触发这块代码路径,所以不会报错。

解决方案

1. 降级Jinja2到兼容版本

执行以下命令安装保留jinja2.Markup的旧版本:

pip install jinja2==2.11.3

完成后重启Jupyter Lab,再测试定时调度任务。

2. 手动修复Jupyter Schedule的代码兼容性

如果不想降级Jinja2,可修改Jupyter Schedule的相关代码:

  • 通过pip show jupyter-schedule查看库的安装目录(Location字段)
  • 找到所有导入jinja2.Markup的文件(多为UI模板渲染相关代码)
  • 将导入语句替换为:
    from markupsafe import Markup
    
    或者添加兼容处理:
    try:
        from jinja2 import Markup
    except ImportError:
        from markupsafe import Markup
    
    注意:后续更新Jupyter Schedule会覆盖修改,需重新处理。

3. 更新Jupyter Schedule到最新版本

执行命令升级到官方修复后的版本:

pip install --upgrade jupyter-schedule

新版本大概率已适配Jinja2 3.x的API变化。

验证

修改完成后重启Jupyter Lab,创建一个简单的定时任务(比如打印日志),确认任务能正常执行且不再报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 16:03:10