问题描述
我在使用 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
到目前为止我做了什么:
- 我将正在加载模块的 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ı.
- 我认为这是路径问题,因为我用 Dependency Walker 打开了 cv2.cp38-win_amd64.pyd 文件以查找丢失的 DLL,我发现许多看起来丢失的 DLL 都在 System32 文件夹中。 Missing DLLs
- 因为我认为这是一个路径问题,所以我的路径看起来不错。当我在没有 GStreamer 功能的情况下构建 OpenCV 时,它完全正常工作。即使我使用额外的 contrib 模块和 CUDA 构建 OpenCV。 我的用户和系统变量:
System PATHs
System and Enviroment Variables
User PATHs
我好几个星期都无法解决这个问题。我今天找到了另一个解决方案,但我真的希望 OpenCV 与 GStreamer 一起工作。如果有人能解决我会很高兴。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)