我使用pyqt5
和opencv 3
创建了一个简单的面部检测应用。我使用anaconda 3.6和anaconda命令提示并使用pyinstaller创建.exe文件。
运行pyinstaller后,.py文件转换为.exe文件,然后它不再运行。
只要在命令提示符下单击它就会显示错误。我附上了图片。
我也尝试了cx_freeze,然后命令提示符弹出并在一毫秒内再次消失。在那里我可以看到一些numpy导入错误的东西,我无法制作图像。
对于我使用anaconda cmd提示的所有内容和使用anaconda的python。
请帮我解决问题
答案 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文件中