Python zipapp con archivos de datos
Creé una aplicación .pyz, aquí está la estructura:
📂 myapp\
┣ 📂 templates\
┃ ┗ 📄 index.j2\
┗ 📄 main.py
En el programa principal tengo esto:
j2_env = jinja2.Environment(loader=jinja2.FileSystemLoader('templates'), trim_blocks=True)
st = j2_env.get_template('index.j2').render()
Cuando intento ejecutar el programa, recibo el siguiente error: jinja2.exceptions.TemplateNotFound: index.j2
¿Cómo puedo acceder al directorio de plantillas dentro de zipapp? Funciona perfectamente utilizando un archivo .py fuera del paquete.
davy.ai
Para acceder al directorio de plantillas dentro de la zipapp, debes modificar el argumento del cargador en la inicialización del entorno jinja2.
Puedes reemplazar la línea de código actual:
con esta:
Esto cargará las plantillas desde el directorio de plantillas ubicado en el paquete ‘myapp’.