You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyInstaller打包Python-Flask应用后出现jinja2.exceptions.TemplateNotFound: color_scale.js问题求助

解决PyInstaller打包后jinja2 TemplateNotFound的问题

结合你描述的情况——已经做了.spec资源配置和branca源码修改,但仍报错——我整理了几个可能的排查和修复方向:

1. 修正.spec文件中datas的目标路径

你当前的datas配置是把模板文件打包到根目录下的templates文件夹,但你修改的element.py代码里,是从bundle_dir/branca/templates加载模板,路径完全不匹配!

把.spec里的datas配置改成:

a = Analysis(['app.py'], 
             datas=[("C:\\...\\Lib\\site-packages\\branca\\templates", "branca/templates")],
             # 保留其他原有配置...
)

这样打包后,模板文件会被放到_MEIPASS/branca/templates目录下,和代码里的路径逻辑完全对应。

2. 验证冻结模式下的模板路径是否正确

在修改后的element.py里加个调试输出,确认实际加载的路径是否存在目标文件:

import sys
import os
from jinja2 import Environment, PackageLoader, FileSystemLoader

if getattr(sys, 'frozen', False) and hasattr(sys, '_MEIPASS'):
    bundle_dir = getattr(sys, '_MEIPASS')
    data_dir = os.path.abspath(os.path.join(bundle_dir, 'branca', 'templates'))
    # 打印调试信息,打包后运行exe时会在控制台显示
    print(f"[DEBUG] 冻结模式模板路径: {data_dir}")
    print(f"[DEBUG] color_scale.js是否存在? {os.path.exists(os.path.join(data_dir, 'color_scale.js'))}")
    ENV = Environment(loader=FileSystemLoader(data_dir))
else:
    ENV = Environment(loader=PackageLoader('branca', 'templates'))

运行打包后的exe,查看控制台输出。如果显示文件不存在,说明资源打包的路径还是有问题,需要再调整datas配置。

3. 升级PyInstaller版本

你使用的PyInstaller3.6是2020年的旧版本,而Python3.9.6是在2020年底发布的,旧版PyInstaller对Python3.9的冻结资源处理可能存在兼容性问题。建议升级到PyInstaller4.x或5.x的稳定版本:

pip install --upgrade pyinstaller

升级后重新生成.spec文件(或直接用新版本PyInstaller重新打包),新版本对冻结应用的资源收集逻辑更完善,大概率能解决这类路径问题。

4. 排查32位/64位环境差异

既然旧32位打包没问题,当前如果是64位环境,可以做以下检查:

  • 确认64位Python环境下,branca包的模板文件确实在Lib\site-packages\branca\templates路径下;
  • 尝试切换到32位Python环境重新打包,对比两种环境下的打包结果,排查是否是64位环境特有的路径或资源收集问题。

5. 手动指定单个模板文件

如果批量打包模板文件夹仍有问题,可以尝试单独指定需要的模板文件,确保每个文件都被正确打包:

datas=[
    ("C:\\...\\Lib\\site-packages\\branca\\templates\\color_scale.js", "branca/templates"),
    ("C:\\...\\Lib\\site-packages\\branca\\templates\\legend.js", "branca/templates"),
    # 列出branca需要的所有模板文件
]

内容的提问来源于stack exchange,提问作者Cimei

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 10:22:29