Pyinstaller Jinja2 TemplateNotFound

8

Ich verwende pyinstaller , um meine flask-Anwendung zu erstellen, Alles funktioniert gut, außer ich bekomme Probleme mit Jinja2 Vorlagen.

Es gab mir jinja2.exceptions.TemplateNotFound ,

Ich habe versucht, from app import template zu setzen, was der Vorlagenordner ist, aber es hat nicht funktioniert (ich nehme an, da sie keine py Datei enthalten).

Ich habe auch versucht, die Datei .spec so zu ändern, dass sie den Ordner templates enthält

%Vor%

Aber es hat auch nicht funktioniert, das gleiche Ergebnis, als ob ich den Ordner manuell selbst kopiere.

Gibt es eine Möglichkeit, die Vorlage gebündelt mit der .exe-Datei zu integrieren?

Bearbeiten

Das ist meine spec Datei

%Vor%

Bearbeiten 2

Akzeptierte Antwort wurde in gmas80 geändert, da das Problem dadurch behoben wird.

Bearbeiten Sie 3

Ich erkenne auch, ich kann einfach einen neuen Ordner mit meinem Paketnamen erstellen und die statischen Vorlagen css , html usw. ausfüllen, und es wird funktionieren (ähnliches Ergebnis von dem, was gmas80 Skript tut)

    
andiwin 05.03.2016, 07:37
quelle

2 Antworten

5

Ich glaube nicht, dass das Problem das ist, was in Ссылка beschrieben ist. Ich konnte gerade eine Anwendung mit Jinja2 einfrieren.

In meiner Spezifikationsdatei verwende ich diesen Ansatz, um alle Vorlagen zu sammeln:

%Vor%

Fügen Sie dann pkg_data zum COLLECT (1-Ordner) oder zum EXE (1-Datei) .spec.

hinzu

In der 1-Ordner-Lösung sollten Sie alle Ihre Vorlagen in dem erstellten Unterordner finden können.

Bearbeiten

Dies könnte funktionieren (vorausgesetzt, Sie haben ein Paket (dh Sie haben ein __init__.py ), das diesen Vorschlägen folgt: Ссылка ):

%Vor%     
gmas80 22.03.2016, 17:08
quelle
2

Das Jinja2 Paket verwendet die pkg_resources API, die nicht von PyInstaller unterstützt wird. Das pkg_resources -Modul wird über das setuptools -Paket bereitgestellt.

Auf der Seite FAQ von pyinstaller :

  

pkg_resources wird derzeit von PyInstaller nicht unterstützt. Das heisst   dass eine Anwendung eine Bibliothek verwendet, die die pkg_resources verwendet   API wird wahrscheinlich nicht out of the box funktionieren. Die einzige Situation, in der   Es funktioniert, wenn es in .egg-Dateien verwendet wird (siehe oben). Zum   Details folgen Ausgabe # 183.

    
Forge 05.03.2016 16:49
quelle