Python Jinja环境不支持绝对路径
将jinja_env设置为特定目录时,该目录中的相对路径有效,而该目录中的绝对路径无效。 例如: 假设上面的代码行Python Jinja环境不支持绝对路径,python,jinja2,Python,Jinja2,将jinja_env设置为特定目录时,该目录中的相对路径有效,而该目录中的绝对路径无效。 例如: 假设上面的代码行 j2_env.get_template('/path/to/a_dir/abc/abc.yaml').render() 抛出异常:jinja2.exceptions.TemplateNotFound,而 j2_env.get_template('abc/abc.yaml').render() 工作 有人能解释这种怪癖吗 还有,什么是pythonic解决方案?我应该拼接绝对路
j2_env.get_template('/path/to/a_dir/abc/abc.yaml').render()
抛出异常:jinja2.exceptions.TemplateNotFound,而
j2_env.get_template('abc/abc.yaml').render()
工作
有人能解释这种怪癖吗
还有,什么是pythonic解决方案?我应该拼接绝对路径并传递相对路径吗?您是否尝试记录
os.path.abspath(“abc/abc.yaml”)
?它符合你的绝对路径吗?是的,当然。绝对路径是文件的绝对路径,相对路径是拆分到目录的绝对路径。没有愚蠢的错误!我通过拆分绝对路径本身使其工作。说明可以在文件系统加载器中列出多个路径。如果要同时使用绝对路径和相对路径,那么将根目录作为第二个路径选项如何?否则,它可能会尝试将您的绝对路径附加到您已经指定的路径上,而该路径当然不存在。
j2_env.get_template('abc/abc.yaml').render()