Python Pyinstaller创建的exe文件无法加载keras nn模型

Python Pyinstaller创建的exe文件无法加载keras nn模型,python,keras,pyinstaller,Python,Keras,Pyinstaller,我的python纸条包括: from keras.models import model_from_json model = model_from_json(open("test.json").read()) model.load_weights("test.h5") model.compile(loss="mean_squared_error", optimizer = "adam") 然后,我使用上述脚本中的pyinstaller创建了一个exe文件。exe文件无法加载保存的模型。如果您对

我的python纸条包括:

from keras.models import model_from_json
model = model_from_json(open("test.json").read())
model.load_weights("test.h5")
model.compile(loss="mean_squared_error", optimizer = "adam")

然后,我使用上述脚本中的pyinstaller创建了一个exe文件。exe文件无法加载保存的模型。如果您对此有任何想法,我们将不胜感激

如果在
h5py
子模块中出现错误,请尝试使用将它们全部添加到
隐藏的\u导入中

您可能注意到pyinstaller生成了一个名为
myscript.spec
的文件。在这个文件中有一个关于如何构建脚本的说明(它也是一个python代码!)

因此,请尝试如下编辑此
myscript.spec

from PyInstaller.utils.hooks import collect_submodules

hidden_imports = collect_submodules('h5py')

a = Analysis(['myscript.py'],
         binaries=None,
         datas=[],
         hiddenimports=hidden_imports,
         hookspath=[],
         runtime_hooks=[],
         excludes=[],
         win_no_prefer_redirects=False,
         win_private_assemblies=False,
         cipher=None)

# ... rest of a file untouched

然后对该文件运行
pyinstaller
pyinstaller myscript.spec

这解决了错误:


pyinstaller-w--hidden import=h5py.defs--hidden import=h5py.utils--hidden import=h5py.h5ac--hidden import=h5py。_proxy myscript.py

错误消息将有助于诊断问题。您是在一个文件模式还是在一个目录模式下创建exe?是否将
test.h5
放置在可执行文件附近?最初我使用的是:pyinstaller-w myscript.py,它在目录中创建可执行文件和依赖库。和错误:ModuleNotFoundError:没有名为“h5py.defs”的模块ModuleNotFoundError:没有名为“h5py.utils”的模块我已经导入了h5py:import h5py我使用这个命令来解决错误:pyinstaller-w--hidden import=h5py.defs--hidden import=h5py.utils myscript.py,我得到了这个错误:ModuleNotFoundError:没有名为“h5py.h5ac”我的建议太长了——我把它挪到一边去回答。如果没有用的话,我很抱歉。它确实有用。谢谢您的时间。直截了当的解决方案我应该在隐藏的导入中放置哪些模块?就我而言,问题在于熊猫和其他东西。所以我只是想知道我还应该把哪些模块放进隐藏中?