Python Jinja2模板获取对应的行号不';行不通

Python Jinja2模板获取对应的行号不';行不通,python,jinja2,template-engine,Python,Jinja2,Template Engine,我想构建一个工具来收集Jinja2模板的覆盖率,为此我需要将生成的字节码映射到源HTML文件 我在Templateclassget\u correlative\u lineno中找到了一个方法,它看起来应该可以完成这项工作,但它没有 这是我的代码示例。它包含主脚本、main.py和templates文件夹中的模板文件,模板文件位于文件夹中的main.py # main.py import os import jinja2 TEMPLATE_FILENAME = 'index.html' TEM

我想构建一个工具来收集Jinja2模板的覆盖率,为此我需要将生成的字节码映射到源HTML文件

我在
Template
class
get\u correlative\u lineno
中找到了一个方法,它看起来应该可以完成这项工作,但它没有

这是我的代码示例。它包含主脚本、
main.py
和templates文件夹中的模板文件,模板文件位于文件夹中的
main.py

# main.py
import os
import jinja2

TEMPLATE_FILENAME = 'index.html'
TEMPLATE_DIR = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'templates')

env = jinja2.Environment(loader=jinja2.FileSystemLoader(TEMPLATE_DIR))

template = env.get_template(TEMPLATE_FILENAME)
text = template.render()
lineno =template.get_corresponding_lineno(1)
模板
index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
{% if 2 + 2 == 4 %}
    <p>This looks ok</p>
{% else %}
    <p>This is not good</p>
{% endif %}
</body>
</html>
Traceback (most recent call last):
File "/Users/nikolaygolub/workspace/my/coverage-jinja-plugin/example/run.py", line 15, in <module>
  print(template.get_corresponding_lineno(8))
File "/Users/nikolaygolub/workspace/pyenvs/py3all/lib/python3.5/site-packages/jinja2/environment.py", line 1056, in get_corresponding_lineno
  for template_line, code_line in reversed(self.debug_info):
File "/Users/nikolaygolub/workspace/pyenvs/py3all/lib/python3.5/site-packages/jinja2/environment.py", line 1072, in debug_info
  self._debug_info.split('&')]
File "/Users/nikolaygolub/workspace/pyenvs/py3all/lib/python3.5/site-packages/jinja2/environment.py", line 1071, in <listcomp>
  return [tuple(imap(int, x.split('='))) for x in
ValueError: invalid literal for int() with base 10: ''
{% block content %}
<body>
{% if 2 + 2 == 4 %}
    <p>This looks ok</p>
{% else %}
    <p>This is not good</p>
{% endif %}
</body>
{% endblock %}