繁体   English   中英

Jinja2 没有得到模板“不存在模板文件:default.j2”

[英]Jinja2 is not getting the template "No template file present: default.j2 "

我创建了两个文件:一个是 main.py,另一个是 default.j2。 当我从两者所在的文件夹“code”(main.py 和 default.j2)运行 cmd 时,它工作正常,但我尝试在 Windows 任务计划程序上自动执行脚本,它显示“不存在模板文件:默认。 j2",即使模板存在于路径/文件夹中。

下面是我用来检查是否找到路径的代码。

def render_template(template, **kwargs):
# check if template exists
if not os.path.exists(template):
    print('No template file present: %s' % template)
    sys.exit()

import jinja2
templateLoader = jinja2.FileSystemLoader(searchpath="")
templateEnv = jinja2.Environment(loader=templateLoader)
templ = templateEnv.get_template(template)

return templ.render(**kwargs)

此链接指出 Windows 任务计划程序从c:\\%WINDIR%\\System32 因此,如果您只是在 Task Scheduler 中使用文件的文件名,它将查找c:\\%WINDIR%\\System32\\default.j2而不是(code)\\default.j2

您可以使用

import os
os.chdir(code_dir)

(run your code)

或者您可以从这里尝试建议,以防main.py的位置可能发生变化,或者您在其他目录中有其他类似的文件。 因此,一种选择是:

os.chdir(os.path.dirname(__file__))

另一种选择是:

template = os.path.join(os.chdir(os.path.dirname(__file__)), "default.j2")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM