【问题标题】:Why do my Pyinstaller created .exe files keep crashing on start-up为什么我的 Pyinstaller 创建的 .exe 文件在启动时不断崩溃
【发布时间】:2021-10-31 23:35:14
【问题描述】:

我使用 PyQT5 编写了不同的 Python 项目,现在尝试创建它们的 .exe 文件以使它们独立且可执行,但每当我尝试使用 pyinstaller 命令时:

pyinstaller --onefile myfile.py

创建的 .exe 文件总是崩溃。但在我的其他系统中,当使用相同的 pyinstaller 命令创建 .exe 文件时,.exe 文件运行良好。那么为什么我在这个特定系统中创建 .exe 文件时遇到问题?请问有什么问题吗?我的文件包含不同小部件的 python 类,脚本在编辑器中运行良好,从编辑器运行时 GUI 可以很好地打开,但不是独立运行。现在我希望它们独立。我也使用了 auto-py-to-exe,同样的问题。我该如何解决这个问题?

我还在这篇文章中附上了两个系统的 pyinstaller 详细信息的屏幕截图。照片中捕获了两个描述(细节),大屏幕上的一个是我遇到问题的系统之一,而较小的显示是创建并成功运行 .exe 文件的系统之一没有任何问题。我注意到在成功运行的一个中,与有问题的属性相比,属性更多。没有问题的有 [recursive-copy meta data]、[splash image file]、[disable windowed traceback]、[--target -architecture arch]、[-codesign identity IDENTITY]、[--osx-entitlements-filename -FILENAME] 而在我的其他系统中出现问题的 pyinstaller 没有。

以下是我得到的一些错误。

Traceback (most recent call last):
File "f:\installed program files\python\python 39\lib\site.py", line 169, in addpackage
  exec(line)
File "<string>", line 1, in <module>
File "f:\installed program files\python\python 39\lib\importlib\util.py", line 2, in <module>
  from . import abc
File "f:\installed program files\python\python 39\lib\importlib\abc.py", line 17, in <module>
  from typing import Protocol, runtime_checkable
File "f:\installed program files\python\python 39\lib\site-packages\typing.py", line 1359, in <module>
  class Callable(extra=collections_abc.Callable, metaclass=CallableMeta):
File "f:\installed program files\python\python 39\lib\site-packages\typing.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 files\python\python 
39\lib\site-packages\zope.event-4.5.0-py3.6-nspkg.pth:

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

【问题讨论】:

    标签: python pyqt5 pyinstaller


    【解决方案1】:

    我已经找到了解决方案,并希望遇到此帖子的其他有类似问题的人也能使用该建议。我不得不点卸载打字。即

    pip uninstall typing
    

    这有助于解决存在的任何问题,并且我的 .exe 文件使用 pyinstaller 运行良好而不会崩溃。卸载打字模块后,再次运行 pyinstaller 命令以创建可执行文件。

    【讨论】:

    • 需要明确的是,如果你运行的是 Python 3.9,你甚至不应该安装第三方“打字”包,因为它是标准库的一部分。
    • 你好@Iguananaut,我记得我遇到了 python 3.9.4 的问题,pip 版本是 21.x.y,我遇到了那个 pip 版本的问题,因为它不允许我安装任何模块。我不得不降级到 pip 版本 20.3.y。 Python 3.7 没有 pip 问题,因为 pip 版本低于 21
    • pip 不依赖于类型模块,也不以任何方式包含或安装它。
    猜你喜欢
    • 1970-01-01
    • 2016-03-25
    • 2019-08-25
    • 1970-01-01
    • 1970-01-01
    • 2021-02-25
    • 2014-08-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多