Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Jinja环境不支持绝对路径_Python_Jinja2 - Fatal编程技术网

Python Jinja环境不支持绝对路径

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解决方案?我应该拼接绝对路

将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解决方案?我应该拼接绝对路径并传递相对路径吗?

您是否尝试记录
os.path.abspath(“abc/abc.yaml”)
?它符合你的绝对路径吗?是的,当然。绝对路径是文件的绝对路径,相对路径是拆分到目录的绝对路径。没有愚蠢的错误!我通过拆分绝对路径本身使其工作。说明可以在
文件系统加载器中列出多个路径。如果要同时使用绝对路径和相对路径,那么将根目录作为第二个路径选项如何?否则,它可能会尝试将您的绝对路径附加到您已经指定的路径上,而该路径当然不存在。
j2_env.get_template('abc/abc.yaml').render()