Windows10下Pyinstaller打包Tkinter聊天机器人报h5py.utils缺失如何解决
解决方案
- 首先补全缺失的h5py模块导入参数,在你原有的打包命令中新增
--hidden-import="h5py.utils",如果仍有h5py相关子模块报错,直接添加全量采集h5py子模块的参数--collect-submodules h5py即可覆盖所有h5py相关依赖。 - 如果你开发的聊天机器人仅使用PyTorch作为transformers的推理后端,不需要TensorFlow支持,直接在你的
chatbot.py代码最开头(导入transformers之前)添加如下代码,从根源避免transformers加载TensorFlow相关模块,跳过报错的modeling_tf_utils导入逻辑:
import os os.environ["TRANSFORMERS_NO_TF"] = "1"
- 精简打包命令,删除你不需要的依赖导入参数,比如没有用到谷歌相关接口就可以去掉
googleapiclient、apiclient的hidden import配置,没有用到scikit-learn就可以删掉所有sklearn相关的导入参数,减少冗余依赖带来的打包故障。 - 如果上述操作仍未解决问题,先执行
pyinstaller chatbot.py生成对应的spec配置文件,手动修改spec文件中的hiddenimports列表,添加'h5py.utils'、'h5py._hl'等缺失模块后,再执行pyinstaller chatbot.spec完成打包,spec配置的优先级高于命令行参数,适配性更高。 - 确认打包操作是在你开发代码所用的虚拟环境中执行,避免全局Python环境和虚拟环境依赖版本不一致导致的模块缺失问题。
内容的提问来源于stack exchange,提问作者Keston Smith
相关产品推荐
相关产品推荐

