Почему мои файлы .exe, созданные Pyinstaller, продолжают сбоить при запуске

#python #pyqt5 #pyinstaller

Вопрос:

Я написал различные проекты на Python с помощью PyQt5 и теперь пытаюсь создать их .exe-файлы, чтобы сделать их автономными и исполняемыми, но всякий раз, когда я пытаюсь использовать команду pyinstaller:

 pyinstaller --onefile myfile.py
 

созданный файл .exe всегда выходит из строя. Но в моей другой системе, когда вы создаете exe-файлы с помощью той же команды pyinstaller, exe-файлы работают хорошо. Так почему же у меня возникают проблемы с созданием файлов .exe в этой конкретной системе? Что может быть не так, пожалуйста? Мои файлы содержат классы python различных виджетов, и сценарии хорошо работают в редакторах, графические интерфейсы хорошо открываются при запуске из редактора, но не как автономные. Теперь я хочу, чтобы они были автономными. Я также использовал auto-py-to-exe, та же проблема. Как мне решить эту проблему?

Я также прикрепляю скриншот подробностей pyinstaller обеих систем к этому сообщению. Два описания (детали) запечатлены на фотографии, одно на большом экране-это система, с которой у меня возникли проблемы, в то время как меньший дисплей-это система, в которой создаются и успешно запускаются файлы .exe без каких-либо проблем. Я заметил, что в том, который успешно запущен, атрибутов больше по сравнению с тем, у которого возникла проблема. У того, у кого нет проблем, есть [метаданные с рекурсивным копированием], [файл с изображением заставки], [отключить трассировку окон], [- арка целевой архитектуры], [- идентификатор кодового дизайна], [—osx-права-имя файла-ИМЯ файла], тогда как у pyinstaller, у которого проблемы в моей другой системе, его нет.

скриншот атрибутов pyinstaller

Ниже приведены некоторые из ошибок, которые я получаю.

 Traceback (most recent call last):
File "f:installed program filespythonpython 39libsite.py", line 169, in addpackage
  exec(line)
File "<string>", line 1, in <module>
File "f:installed program filespythonpython 39libimportlibutil.py", line 2, in <module>
  from . import abc
File "f:installed program filespythonpython 39libimportlibabc.py", line 17, in <module>
  from typing import Protocol, runtime_checkable
File "f:installed program filespythonpython 39libsite-packagestyping.py", line 1359, in <module>
  class Callable(extra=collections_abc.Callable, metaclass=CallableMeta):
File "f:installed program filespythonpython 39libsite-packagestyping.py", line 1007, in __new__
  self._abc_registry = extra._abc_registry
  AttributeError: type object 'Callable' has no attribute '_abc_registry'

Remainder of file ignored
Error processing line 1 of f:installed program filespythonpython 
39libsite-packageszope.event-4.5.0-py3.6-nspkg.pth:

  Traceback (most recent call last):
 File "f:installed program filespythonpython 39libsite.py", line 
 169, in addpackage
  exec(line)
File "<string>", line 1, in <module>
File "f:installed program filespythonpython 39libimportlibutil.py", line 2, in <module>
  from . import abc
File "f:installed program filespythonpython 39libimportlibabc.py", 
line 17, in <module>
  from typing import Protocol, runtime_checkable
File "f:installed program filespythonpython 39libsite-packagestyping.py", line 1359, in <module>
  class Callable(extra=collections_abc.Callable, metaclass=CallableMeta):
File "f:installed program filespythonpython 39libsite-packagestyping.py", line 1007, in __new__
  self._abc_registry = extra._abc_registry
  AttributeError: type object 'Callable' has no attribute '_abc_registry'
 

Ответ №1:

Я нашел решение этой проблемы и надеюсь, что другие, у кого есть подобная проблема, которые сталкивались с этим сообщением, тоже воспользуются этим предложением. Мне пришлось удалить pip, набрав. то есть

 pip uninstall typing
 

Это помогает устранить любую возникшую проблему, и мои файлы .exe хорошо работают с помощью pyinstaller без сбоев. После удаления модуля ввода снова запустите команду pyinstaller, чтобы создать исполняемые файлы.

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

1. Чтобы быть ясным, если вы используете Python 3.9, у вас даже не должен быть установлен сторонний пакет «ввода», так как он является частью стандартной библиотеки.

2. Здравствуйте @Iguananaut, я помню, что у меня была проблема с python 3.9.4, версия pip была 21.x.y, У меня возникла проблема с этой версией pip, так как она не позволяет мне установить какой-либо модуль. Мне пришлось понизить рейтинг до версии 20.3.y. Python 3.7 не имеет проблем с pip, потому что версия pip ниже 21

3. pip не зависит от модуля ввода и никоим образом не включает и не устанавливает его.