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

Mako模板使用<%include>标签时报TemplateLookupException异常

报错根因

直接将读取到的模板字符串传入Template类初始化时,Mako不会为内存中生成的模板对象绑定模板查找器(TemplateLookup),模板内的<%include>标签无法定位外部引用文件,就会抛出对应异常。哪怕被引用文件和主模板在同一目录,没有配置查找规则的情况下Mako也不会自动扫描当前目录。

修复方法

两种可直接运行的修复方案,按需选择即可:

  • 方案1:初始化Template时直接传入filename参数指定模板文件路径,不需要手动读取文件内容,Mako会自动将模板所在目录加入搜索路径
    修改后的sample1.py代码:

    from mako.template import Template
    fn = "sample1.txt"
    # 传入filename参数,自动绑定同目录查找规则
    t = Template(filename=fn).render()
    print(t)
    

    该方案写法最简单,适合单目录存放模板的简单场景。

  • 方案2:显式创建TemplateLookup实例配置模板搜索目录,再通过查找器加载目标模板
    修改后的sample1.py代码:

    from mako.lookup import TemplateLookup
    # 指定模板搜索目录为当前运行路径
    lookup = TemplateLookup(directories=['./'])
    t = lookup.get_template("sample1.txt").render()
    print(t)
    

    该方案适合多模板目录、需要统一配置缓存、编码规则的复杂项目场景。

运行效果

修改完成后执行python3 sample1.py,可得到正常输出:

<html>
header
</html>
hi
<html>
footer
</html>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 15:48:18