py程序里包含有
from pdf2docx import Converter
没有封装之前可以正常运行,但是封装成exe后,运行时闪退。我快速复制下报错的内容。
raise ImportError('ERROR: recursion is detected during loading of "cv2" binary extensions. Check OpenCV installation.')
ImportError: ERROR: recursion is detected during loading of "cv2" binary extensions. Check OpenCV installation.
[16120] Failed to execute script 'wpdf_docx' due to unhandled exception!
翻译出来是:
raise ImportError('错误:加载“cv2”二进制扩展时检测到递归。请检查OpenCV安装。')
ImportError:错误:在加载“cv2”二进制扩展时检测到递归。检查OpenCV安装。
[16120]由于未处理的异常,无法执行脚本“wpdf\u docx”!
我在网上找了许多方法,结合自己程序的实际和尝试,最后觉得应该是opencv-Python的版本太高了,以至于和我的python解释器(3.9版本)不匹配。
这里可以看到,按正常pip安装第三方库,它会安装最新的版本,我这里自动安装了4.6.0.66
我的解决方法是:
1、卸载掉opencv-python(4.6.0.66)版本,
2、安装 4.5.1.48版本。我的python解释器是3.9版本,其他我不知道,但3.9版本和opencv-python 4.5.1.48版本是可以兼容的。
安装好之后,再去设置那里,看你的虚拟环境,可以看到,已经变成了你要的版本了。
3、降低版本后,接着开始生成exe。
在Terminal里,输入 pyinstaller -F XXX.py,按Enter
这样生成出来的exe,就可以正常运行了。
文章参考:pyinstaller打包后,运行生成的exe报错“recursion is detected during loading of “cv2“ binary extensions.”_心不痒痒~的博客-CSDN博客