我在编译好opencv之后,不小心又下载了 opencv-python
然后想起opencv是编译过的就又将 opencv-python 卸载了
再次运行 报错:
ImportError: DLL load failed while importing cv2: The specified module could not be found.
查看了很多资料后 得知原来是在卸载 opencv-python 依赖包环境也给卸载了
但是由于我们是自行编译的,所以在编译的时候已经帮我们设置好了一次动态链接
重新加上环境就行了:
由于我构建了一个共享库,因此 Python 绑定依赖于opencv_world410.dll,其中包含 OpenCV 的所有可执行代码。如果我构建了一个静态库,则 OpenCV 的所有可执行代码都将包含在cv2.cpxx-win_amd64.pyd中。由于我没有告诉 Python DLL 的位置,因此在尝试导入绑定时出现以下错误:
import cv2 ImportError: DLL load failed while importing cv2: The specified module could not be found.
鉴于我知道 OpenCV 共享库的路径是必需的,而我还没有告诉 Python,所以首先要尝试的是将它添加到 Pythons DLL 搜索路径中,因为os.add_dll_directory()
我们使用的是 Python >= 3.8,看看是否能解决问题。
import os os.add_dll_directory(r'D:\build\opencv\4_10\install\x64\vc17\bin') import cv2 ImportError: DLL load failed while importing cv2: The specified module could not be found.
啊,同样的错误,发生了什么事。
在这种情况下,我还针对 CUDA SDK 构建了 OpenCV,因此很有可能也缺少 DLL。我可以尝试通过简单地将 CUDA SDK 二进制文件的位置添加到 python DLL 搜索路径来修复此问题,如下所示。
os.add_dll_directory(r'C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.5\bin')
import cv2
这似乎已经解决了这个问题,但最好通过调用来检查构建信息,以print(cv2.getBuildInformation())
仔细检查我是否加载了正确版本的 OpenCV。
print(cv2.getBuildInformation())