导入 cv2 时 DLL 加载失败

问题描述

我在使用 GStreamer 功能从源代码构建 OpenCV 时遇到了这个错误。 这是错误

Python 3.8.7 (tags/v3.8.7:6503f05,Dec 21 2020,17:59:51) [MSC v.1928 64 bit (AMD64)] on win32
Type "help","copyright","credits" or "license" for more information.
>>> import cv2
Traceback (most recent call last):
File "<stdin>",line 1,in <module>
File "C:\Program Files\python38\lib\site-packages\cv2\__init__.py",line 102,in <module>
 bootstrap()
File "C:\Program Files\python38\lib\site-packages\cv2\__init__.py",line 90,in bootstrap
 import cv2
ImportError: DLL load Failed while importing cv2: Belirtilen modül bulunamadı.
>>>

我的设置是:
Gstreamer 1.18.2(我尝试了 MinGW 64 位和 MSVC 64 位相同的结果)
Python 3.8
OpenCV 4.5.1

到目前为止我做了什么:

  1. 我将正在加载模块的 init.py 文件更改为调试模式,这是我发现的:
>>> import cv2
OpenCV loader: os.name="nt"  platform.system()="Windows"
OpenCV loader: loading config: C:\Program Files\python38\lib\site-packages\cv2\config.py
OpenCV loader: loading config: C:\Program Files\python38\lib\site-packages\cv2\config-3.8.py
OpenCV loader: PYTHON_EXTENSIONS_PATHS=['C:/Program Files/python38/Lib/site-packages/cv2\\python-3.8']
OpenCV loader: BINARIES_PATHS=['D:/build6/install\\x64/vc16/bin']
OpenCV loader: PATH=D:/build6/install\x64/vc16/bin;C:\Program Files\python38\Scripts\;C:\Program Files\python38\;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.1\bin;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.1\libnvvp;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\Git\cmd;C:\Program Files\PuTTY\;C:\Program Files\NVIDIA Corporation\Nsight Compute 2020.2.0\;C:\Program Files (x86)\NVIDIA Corporation\physx\Common;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\Program Files\CMake\bin;C:\gstreamer\1.0\mingw_x86_64\bin;C:\gstreamer\1.0\mingw_x86_64\lib;C:\gstreamer\1.0\mingw_x86_64\lib\gstreamer-1.0;D:\build6\install\x64\vc16\staticlib;D:\build6\install\x64\vc16\bin;C:\Users\searo\AppData\Local\Microsoft\WindowsApps;C:\Users\searo\AppData\Local\Programs\Microsoft VS Code\bin;C:\gstreamer\1.0\mingw_x86_64\bin;C:\gstreamer\1.0\mingw_x86_64\lib;C:\gstreamer\1.0\mingw_x86_64\lib\gstreamer-1.0;D:\build6\install\x64\vc16\bin;D:\build6\install\x64\vc16\staticlib;C:\Windows\system32;
OpenCV loader: replacing cv2 module
Traceback (most recent call last):
  File "<stdin>",in <module>
  File "C:\Program Files\python38\lib\site-packages\cv2\__init__.py",in <module>
    bootstrap()
  File "C:\Program Files\python38\lib\site-packages\cv2\__init__.py",in bootstrap
    import cv2
ImportError: DLL load Failed while importing cv2: Belirtilen modül bulunamadı.
  1. 我认为这是路径问题,因为我用 Dependency Walker 打开了 cv2.cp38-win_amd64.pyd 文件以查找丢失的 DLL,我发现许多看起来丢失的 DLL 都在 System32 文件夹中。 Missing DLLs
  2. 因为我认为这是一个路径问题,所以我的路径看起来不错。当我在没有 GStreamer 功能的情况下构建 OpenCV 时,它完全正常工作。即使我使用额外的 contrib 模块和 CUDA 构建 OpenCV。 我的用户和系统变量:

System PATHs
System and Enviroment Variables
User PATHs

我好几个星期都无法解决这个问题。我今天找到了另一个解决方案,但我真的希望 OpenCV 与 GStreamer 一起工作。如果有人能解决我会很高兴。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...