ModuleNotFoundError: Нет модуля с именем «h5py.utils»

#python-3.x #pyinstaller #huggingface-transformers

#python-3.x #pyinstaller #обнимашки-трансформеры

Вопрос:

Поэтому я пытаюсь запустить чат-бота, который я создал с помощью Tkinter и transformers в качестве автономного 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'  

Я пробовал использовать команды follow и добавлял и удалял дополнительные скрытые импорта, но это не сработало:

 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  

Комментарии:

1. pip install h5py вероятно, сделает это

2. @TheodorPeifer Я уже пробовал это, к сожалению, это не помогло решить проблему.

Ответ №1:

Я решил свою проблему. Вот что я сделал

Прежде чем я начну, не используйте флаг-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. Перейдите в Libsite-packagescertifi папку и скопируйте файл cacert.prem.
  3. При попытке запустить exe-файл из сгенерированной папки dist вы получите сообщение об ошибке операционной системы об отсутствующем пакете сертификатов TLS CA, поскольку он указывает на папку certifi, которая не существует в папке dist. Из сгенерированной папки dist перейдите в основную папку, создайте новую папку, переименуйте ее в «certifi» и вставьте в нее файл cacert.prem.
  4. Повторно запустите свой exe-файл, и он должен сработать, он сработал для меня.