微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

导入 cv2 时 DLL 加载失败

如何解决导入 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.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?