无法打开python .exe应用程序

时间:2018-02-04 11:46:46

标签: python anaconda pyinstaller

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

运行pyinstaller后,.py文件转换为.exe文件,然后它不再运行。

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

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

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

请帮我解决问题

This one is showing now

2 个答案:

答案 0 :(得分:0)

启动使用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

答案 1 :(得分:0)

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