ModuleNotFoundError: No module named 'h5py.utils'

ModuleNotFoundError: No module named 'h5py.utils'

所以我正在尝试 运行 我使用 Tkinter 和转换器构建的聊天机器人作为独立的 exe 文件 [我正在使用 Windows 10] 但我会得到一个 运行 每次执行时都会出错。我做错了什么吗?我已经尝试了将近 2 天的不同命令。

下面产生错误:

Traceback (most recent call last):
 RuntimeError: Failed to import transformers.modeling_tf_utils because of the following error (look up to see its traceback):
No module named 'h5py.utils'

Traceback (most recent call last): RuntimeError: Failed to import transformers.models.auto because of the following error (look up to see its traceback): Failed to import transformers.modeling_tf_utils because of the following error (look up to see its traceback): No module named 'h5py.utils'

我已经尝试使用以下命令并添加和删除了额外的隐藏导入,但这没有用:

pyinstaller -w  --icon=logo.ico --hidden-import="pkg_resources.py2_warn" --hidden-import="h5py.defs" --hidden-import="googleapiclient" --hidden-import="apiclient" --hidden-import=tensorflow --hidden-import=pytorch --hidden-import=transformers --hidden-import=tqdm --collect-data tensorflow --collect-data torch --copy-metadata tensorflow --copy-metadata torch --copy-metadata h5py --copy-metadata tqdm --copy-metadata regex --copy-metadata sacremoses --copy-metadata requests --copy-metadata packaging --copy-metadata filelock --copy-metadata numpy --copy-metadata tokenizers --copy-metadata importlib_metadata --hidden-import=“sklearn.utils._cython_blas” --hidden-import=“sklearn.neighbors.typedefs” --hidden-import=“sklearn.neighbors.quad_tree” --hidden-import=“sklearn.tree” --hidden-import=“sklearn.tree._utils” chatbot.py

我解决了我的问题。这是我所做的

在我开始之前,请不要在您的命令中使用 -onefile 标志。

  1. 我运行命令" pyinstaller -w --icon=logo.ico --hidden-import="h5py.defs" --hidden-import="h5py.utils" --hidden-import="h5py.h5ac" --hidden-import="h5py._proxy" --hidden-import=tensorflow --hidden-import=transformers --hidden-import=tqdm --collect-data tensorflow --collect-data torch --copy-metadata tensorflow --copy-metadata torch --copy-metadata h5py --copy-metadata tqdm --copy-metadata regex --copy-metadata sacremoses --copy-metadata requests --copy-metadata packaging --copy-metadata filelock --copy-metadata numpy --copy-metadata tokenizers --copy-metadata importlib_metadata chatbot.py "

  2. 转到 \Lib\site-packages\certifi 文件夹并复制 cacert.prem 文件。

  3. 当您尝试从生成的 dist 文件夹中 运行 exe 文件时,您将收到关于缺少 TLS CA 证书包的 OSError,因为它指向一个不存在的 certifi 文件夹存在于 dist 文件夹中。 从生成的 dist 文件夹,转到主文件夹,创建一个新文件夹并将其重命名为“certifi”,然后将 cacert.prem 文件粘贴到其中。

  4. 重新 运行 你的 exe 文件,它应该可以工作,它对我有用。