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

使用PyInstaller打包D-tale生成EXE时遇文件缺失错误的解决方法

PyInstaller打包D-tale为EXE文件的文件缺失问题解决

问题现象

打包过程中出现以下文件找不到错误:

FileNotFoundError: No such file of directory: ...\dash_colorscales\metadata.json.
FileNotFoundError: No such file of directory: ...\dtale\translations.

已尝试的hook文件:

from PyInstaller.utils.hooks import collect_data_files, collect_submodules
hiddenimports = collect_submodules('dtale')
datas = collect_data_files('dtale', include_py_files=True)

用户的main.py代码:

import dtale

if name == 'main':
    dtale.show().open_browser()
    app = dtale.app.build_app(reaper_on=False)
    app.run(host="0.0.0.0", port=8080)

解决方法

1. 修正hook文件,补充缺失的依赖文件收集

修改hook文件(建议命名为hook-dtale.py),同时收集dtale的完整数据文件和dash_colorscales的元数据文件:

from PyInstaller.utils.hooks import collect_data_files, collect_submodules

# 收集dtale和dash_colorscales的所有子模块
hiddenimports = collect_submodules('dtale') + collect_submodules('dash_colorscales')
# 收集dtale的全部数据文件(包含translations目录)
datas = collect_data_files('dtale')
# 单独收集dash_colorscales的metadata.json
datas += collect_data_files('dash_colorscales', includes=['metadata.json'])

2. 打包时指定hook文件路径

将修改后的hook文件放在单独的hooks目录下,打包时通过参数指定:

pyinstaller --additional-hooks-dir=./hooks main.py

3. 修正main.py的语法错误

代码中的if name == 'main':存在语法错误,需改为:

if __name__ == '__main__':

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 18:05:27