在加载“cv2”二进制扩展期间检测到递归

Ник*_*еев 11 python opencv pyinstaller windows-10

我有一个小程序,在 pyinstaller 编译后返回 opencv 错误。但无需编译即可工作!

我在 Windows 10 上使用 Python 3.8.10

程序:

导入 pyautogui
导入 numpy as np
导入 cv2
尝试:
from PIL import Image
except ImportError:
import Image

Screenshot = pyautogui.screenshot('screenshot.png', Region=(970, 591, 184, 101)) # 开始
img = cv2.imread('screenshot.png')
img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
img = cv2.bitwise_not(img)

错误:

['C:\Users\n1kro\AppData\Local\Temp\_MEI83642\base_library.zip', 'C:\Users\n1kro\AppData\Local\Temp\ MEI83642\ lib-dynload', 'C:\Users\n1kro \AppData\Local\Temp\ MEI83642']
回溯(最近一次调用):
文件“test.py”,第 3 行,
文件“PyInstaller\loader\pyimod03_importers.py”,第 476 行,exec_module
文件“cv2_ init
”。 py”,第 180 行,
文件“cv2_ init
.py”,第 75 行,引导
导入错误:错误:在加载“cv2”二进制扩展期间检测到递归。检查 OpenCV 安装。[3416] 由于未处理的异常,无法执行脚本“test”!

我尝试了全部重新安装,但没有帮助!

找到这篇文章: https: //github.com/opencv/opencv/issues/13202 但不明白,该怎么办:(需要你的帮助,拜托!

小智 17

打开cmd并使用pip安装不同的版本:

 pip install opencv-python==4.5.3.56
Run Code Online (Sandbox Code Playgroud)

之后pyinstaller就没有问题了


Sil*_*eri 7

要解决此问题,您可以:

  • 使用旧版本的 OpenCV(例如,opencv-python==4.5.3.56而不是4.6.0.66其他人提到的)。
  • 等待 和 的新版本PyInstallerpyinstaller-hooks-contrib根据https://github.com/pyinstaller/pyinstaller/issues/6964#issuecomment-1193333632可能是 v5.3 和 v2022.9 )。
  • 安装并编译 pyInstaller 的开发版本,其中包含此问题的修复程序(请参阅上面链接的评论中的线程)。


小智 3

我可以通过卸载 opencv 并安装旧版本来解决此问题。4.5.3 版本运行良好。