如何修复模板位置错误jinja2

2024-10-03 02:36:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图使用Python解析器将一个J2模板与其相应的YAML文件合并,但是下面的错误不断发生,我无法找出原因

我使用的解析器是:

from jinja2 import Environment
from jinja2 import FileSystemLoader

import argparse
import yaml

parser = argparse.ArgumentParser()
parser.add_argument('-d')
parser.add_argument('-t')
parser.add_argument('-o')
args = parser.parse_args()

j2_env = Environment(loader=FileSystemLoader('j2_templates'),trim_blocks=True,lstrip_blocks=True)

template = j2_env.get_template(args.t)

with open(args.d, 'r') as stream:
   result = template.render(yaml.load(stream))
   f = open(args.o, 'w')
   f.write(result)
   print(result)

名为“gia_migration_peer8.j2”的j2模板位于j2_templates/gia_migration_peer8.j2的folling区域中

标题为“gia\u migration\u peer8.yml”的yaml文件位于folling区域yaml\u files/gia\u migration\u peer8.yml中

使用命令'python3.6 build.py-d yaml\u files/gia\u migration\u peer8.yml-t j2\u templates/gia\u migration\u peer8.j2'我得到以下错误:

Traceback (most recent call last):
  File "build.py", line 15, in <module>
    template = j2_env.get_template(args.t)
  File "/usr/local/lib64/python3.6/site-packages/jinja2/environment.py", line 830, in get_template
    return self._load_template(name, self.make_globals(globals))
  File "/usr/local/lib64/python3.6/site-packages/jinja2/environment.py", line 804, in _load_template
    template = self.loader.load(self, name, globals)
  File "/usr/local/lib64/python3.6/site-packages/jinja2/loaders.py", line 113, in load
    source, filename, uptodate = self.get_source(environment, name)
  File "/usr/local/lib64/python3.6/site-packages/jinja2/loaders.py", line 187, in get_source
    raise TemplateNotFound(template)
jinja2.exceptions.TemplateNotFound: j2_templates/gia_migration_peer8.j2

但我想不出怎么修


Tags: inpyparserjinja2yamlgetlineargs