无法打开 python .exe 应用程序

Couldn't open python .exe application

我使用 pyqt5opencv 3 创建了一个简单的人脸检测应用程序。我使用 anaconda 3.6 和 anaconda 命令提示符并使用 pyinstaller 创建 .exe 文件。

经过运行pyinstaller,.py文件转成.exe文件,就不再是运行.

只要在命令提示符下单击它,就会显示错误。我附上了图片。

我也试过 cx_freeze 并且命令提示符弹出并在一毫秒内再次消失。在那里我可以看到一些 numpy 导入错误,我无法制作图像。

对于我使用 anaconda cmd 提示符和来自 anaconda 的 python 的所有内容。

请帮我解决问题

启动使用 PyInstaller 创建的 .exe 文件后,您会看到以下错误:

Py_Initialize: unable to load the file system codec
LookupError: unknown encoding: utf-8

此错误也在 PyInstaller GitHub issues 页面上报告。

如果您 运行 使用 --debug 标志的 PyInstaller 然后启动您的应用程序,您是否会在日志文件中看到类似于 this 的错误?具体来说,以下错误可能位于日志文件的开头附近:

 File "c:\program files\python36\lib\re.py", line 142, in <module>
  class RegexFlag(enum.IntFlag):
AttributeError: module 'enum' has no attribute 'IntFlag'
784 DEBUG: collect_submodules - Found submodules: {'encodings'}

这可能是由于覆盖标准库的不兼容模块(枚举)造成的。在这种情况下,建议的解决方法是删除 enum34 包 (pip uninstall enum34)

您的应用程序无法启动,因为它无法导入 PyQt5 模块。您可以将 PyQt5(或您正在使用的每个 PyQt5 模块)添加到 .spec 文件中的 hiddenimports 列表中,该文件是在您首先将此应用程序与 PyInstaller 捆绑在一起之后生成的,然后重新生成可执行文件。或者,您可以通过在任何其他与 PyQt5 相关的导入

之前添加 import PyQt5 来明确地将 PyQt5 添加到您的 .py 文件中