Pyinstaller Jinja2 TemplateNotFound
j'utilise pyinstaller pour construire mon application flasque,
tout fonctionne bien sauf que j'ai des problèmes avec les modèles Jinja2.
Il m'a donné jinja2.exceptions.TemplateNotFound,
j'ai essayé de mettre from app import template qui est le dossier templates, mais ça n'a pas marché (je suppose qu'ils ne contiennent pas de py fichier).
j'ai aussi essayé de changer le .spec le fichier templates dossier 
added_files = [
         ( '..CommerceAppapptemplates', 'templates' ),
         ( '..CommerceAppappstatic', 'static' )
        ]
a = Analysis(['..CommerceApprun.py'],
             pathex=['D:PythonProjectsCommerceAppExe'],
             binaries=None,
             datas=added_files,
             hiddenimports=[],
             hookspath=[],
             runtime_hooks=[],
             excludes=[],
             win_no_prefer_redirects=False,
             win_private_assemblies=False,
             cipher=block_cipher)
mais ça n'a pas marché non plus, même résultat que si je copie le dossier manuellement par moi-même.
Est-il possible d'inclure Modèle livré avec la .exe?
Modifier
C'est mon spec le fichier
# -*- mode: python -*-
block_cipher = None
a = Analysis(['..CommerceApp_withPyInstallerrun.py'],
             pathex=['D:PythonProjectsCommerceAppExe'],
             binaries=None,
             datas=[],
             hiddenimports=[],
             hookspath=[],
             runtime_hooks=[],
             excludes=[],
             win_no_prefer_redirects=False,
             win_private_assemblies=False,
             cipher=block_cipher)
pyz = PYZ(a.pure, a.zipped_data,
             cipher=block_cipher)
exe = EXE(pyz,
          a.scripts,
          exclude_binaries=True,
          name='SupplyTracker',
          debug=False,
          strip=False,
          upx=True,
          console=True )
coll = COLLECT(exe,
               a.binaries,
               a.zipfiles,
               a.datas,
               strip=False,
               upx=True,
               name='SupplyTracker')
Edit 2
réponse acceptée changé à gmas80 parce qu'il corrige le problème. 
Edit 3
 aussi je me rends compte que je peux juste faire nouveau dossier avec mon nom de paquet et remplir les modèles statiques css,html, etc, et il va travailler (résultat similaire à partir de ce gmas80 script)
2 réponses
je ne crois pas que la question est ce qui est décrit dans https://stackoverflow.com/a/35816876/2741329. J'ai juste été capable de geler une application avec Jinja2.
dans mon fichier spec j'utilise cette approche pour collecter tous les modèles:
from PyInstaller.building.build_main import Analysis, PYZ, EXE, COLLECT, BUNDLE, TOC
def collect_pkg_data(package, include_py_files=False, subdir=None):
    import os
    from PyInstaller.utils.hooks import get_package_paths, remove_prefix, PY_IGNORE_EXTENSIONS
    # Accept only strings as packages.
    if type(package) is not str:
        raise ValueError
    pkg_base, pkg_dir = get_package_paths(package)
    if subdir:
        pkg_dir = os.path.join(pkg_dir, subdir)
    # Walk through all file in the given package, looking for data files.
    data_toc = TOC()
    for dir_path, dir_names, files in os.walk(pkg_dir):
        for f in files:
            extension = os.path.splitext(f)[1]
            if include_py_files or (extension not in PY_IGNORE_EXTENSIONS):
                source_file = os.path.join(dir_path, f)
                dest_folder = remove_prefix(dir_path, os.path.dirname(pkg_base) + os.sep)
                dest_file = os.path.join(dest_folder, f)
                data_toc.append((dest_file, source_file, 'DATA'))
    return data_toc
pkg_data = collect_pkg_data('<YOUR LIB HERE>')
 puis Ajouter pkg_dataCOLLECT (1-dossier) ou à l' EXE (1 fichier) .specs.
dans la solution 1-folder, vous devriez être en mesure de trouver tous vos modèles dans le sous-dossier.
Modifier
cela pourrait fonctionner (en supposant que vous avez un paquet (i.e., vous avez un __init__.py), en suivant ces conseils: http://flask.pocoo.org/docs/0.10/patterns/packages/):
# -*- mode: python -*-
# <<< START ADDED PART    
from PyInstaller.building.build_main import Analysis, PYZ, EXE, COLLECT, BUNDLE, TOC
def collect_pkg_data(package, include_py_files=False, subdir=None):
    import os
    from PyInstaller.utils.hooks import get_package_paths, remove_prefix, PY_IGNORE_EXTENSIONS
    # Accept only strings as packages.
    if type(package) is not str:
        raise ValueError
    pkg_base, pkg_dir = get_package_paths(package)
    if subdir:
        pkg_dir = os.path.join(pkg_dir, subdir)
    # Walk through all file in the given package, looking for data files.
    data_toc = TOC()
    for dir_path, dir_names, files in os.walk(pkg_dir):
        for f in files:
            extension = os.path.splitext(f)[1]
            if include_py_files or (extension not in PY_IGNORE_EXTENSIONS):
                source_file = os.path.join(dir_path, f)
                dest_folder = remove_prefix(dir_path, os.path.dirname(pkg_base) + os.sep)
                dest_file = os.path.join(dest_folder, f)
                data_toc.append((dest_file, source_file, 'DATA'))
    return data_toc
pkg_data = collect_pkg_data('<yourapplication>')  # <<< Put the name of your package here
# <<< END ADDED PART    
block_cipher = None
a = Analysis(['..\CommerceApp_withPyInstaller\run.py'],
             pathex=['D:\PythonProjects\CommerceAppExe'],
             binaries=None,
             datas=[],
             hiddenimports=[],
             hookspath=[],
             runtime_hooks=[],
             excludes=[],
             win_no_prefer_redirects=False,
             win_private_assemblies=False,
             cipher=block_cipher)
pyz = PYZ(a.pure, a.zipped_data,
             cipher=block_cipher)
exe = EXE(pyz,
          a.scripts,
          exclude_binaries=True,
          name='SupplyTracker',
          debug=False,
          strip=False,
          upx=True,
          console=True )
coll = COLLECT(exe,
               a.binaries,
               a.zipfiles,
               a.datas,
               pkg_data,  # <<< Add here the collected files
               strip=False,
               upx=True,
               name='SupplyTracker')
    	                Jinja2 package pkg_resources API qui n'est pas supporté par PyInstaller. pkg_resources le module est fourni via le setuptools paquet.
FAQ page de pyinstaller: 
pkg_resources n'est actuellement pas supporté par PyInstaller. Cela signifie qu'une application utilisant une bibliothèque qui utilise les ressources pkg_ressources L'API ne fonctionnera probablement pas. La seule situation dans laquelle il fonctionne, c'est lorsqu'il est utilisé sur .oeuf de fichiers (voir ci-dessus). Pour les détails suivent le numéro 183.