为何Jinja2的FileSystemLoader()函数无法正常工作?
Jinja2 TemplateNotFound: message.txt 错误解决
这个错误的核心是Jinja2的FileSystemLoader无法定位到指定的模板文件,下面是具体的排查和解决步骤:
1. 确认项目目录结构
确保你的文件层级完全符合代码预期,正确结构应该是:
jinja/ ├── write_messages.py └── templates/ └── message.txt
即templates文件夹和运行的脚本write_messages.py处于同一级目录,且message.txt确实在templates文件夹内。
2. 检查当前工作目录
运行脚本时的工作目录可能和脚本所在目录不一致,导致路径解析错误。可以在代码开头添加以下代码确认:
import os print("当前工作目录:", os.getcwd())
如果输出不是c:\Users\m00n\Desktop\jinja,需要切换到该目录下再执行脚本(比如用cd c:\Users\m00n\Desktop\jinja命令切换)。
3. 使用绝对路径加载模板
避免相对路径的歧义,直接使用模板文件夹的绝对路径初始化FileSystemLoader:
from jinja2 import Environment, FileSystemLoader # 替换为你实际的templates绝对路径 environment = Environment(loader=FileSystemLoader("c:/Users/m00n/Desktop/jinja/templates/"))
4. 核对模板文件名
确保代码中调用的message.txt和实际模板文件名完全一致(包括大小写,Windows系统虽不区分大小写,但保持一致能避免潜在问题)。
内容的提问来源于stack exchange,提问作者Hassanein ali
相关产品推荐
相关产品推荐

