I got stuck with this error while building OpenCV from source with GStreamer features.
Here is the error:
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 FilesPython38libsite-packagescv2\__init__.py", line 102, in <module>
bootstrap()
File "C:Program FilesPython38libsite-packagescv2\__init__.py", line 90, in bootstrap
import cv2
ImportError: DLL load failed while importing cv2: Belirtilen modül bulunamad?.
>>>
My setup is:
Gstreamer 1.18.2 (I tried both MinGW 64-bit and MSVC 64-bit same results)
Python 3.8
OpenCV 4.5.1
What I have done so far:
- I change init.py file which is loading module to DEBUG mode and here is what I found:
>>> import cv2
OpenCV loader: os.name="nt" platform.system()="Windows"
OpenCV loader: loading config: C:Program FilesPython38libsite-packagescv2config.py
OpenCV loader: loading config: C:Program FilesPython38libsite-packagescv2config-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/installx64/vc16/bin;C:Program FilesPython38Scripts;C:Program FilesPython38;C:Program FilesNVIDIA GPU Computing ToolkitCUDAv11.1in;C:Program FilesNVIDIA GPU Computing ToolkitCUDAv11.1libnvvp;C:Program Files (x86)Common FilesOracleJavajavapath;C:Windowssystem32;C:Windows;C:WindowsSystem32Wbem;C:WindowsSystem32WindowsPowerShellv1.0;C:WindowsSystem32OpenSSH;C:Program FilesGitcmd;C:Program FilesPuTTY;C:Program FilesNVIDIA CorporationNsight Compute 2020.2.0;C:Program Files (x86)NVIDIA CorporationPhysXCommon;C:Program FilesNVIDIA CorporationNVIDIA NvDLISR;C:Program FilesCMakein;C:gstreamer1.0mingw_x86_64in;C:gstreamer1.0mingw_x86_64lib;C:gstreamer1.0mingw_x86_64libgstreamer-1.0;D:uild6installx64vc16staticlib;D:uild6installx64vc16in;C:UserssearoAppDataLocalMicrosoftWindowsApps;C:UserssearoAppDataLocalProgramsMicrosoft VS Codein;C:gstreamer1.0mingw_x86_64in;C:gstreamer1.0mingw_x86_64lib;C:gstreamer1.0mingw_x86_64libgstreamer-1.0;D:uild6installx64vc16in;D:uild6installx64vc16staticlib;C:Windowssystem32;
OpenCV loader: replacing cv2 module
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:Program FilesPython38libsite-packagescv2\__init__.py", line 102, in <module>
bootstrap()
File "C:Program FilesPython38libsite-packagescv2\__init__.py", line 90, in bootstrap
import cv2
ImportError: DLL load failed while importing cv2: Belirtilen modül bulunamad?.
- I am thinking it is path issue because I opened the cv2.cp38-win_amd64.pyd file with Dependency Walker to find which DLLs missing and I found that many DLLs which looks like missing are in the System32 folder.
Missing DLLs
- Since that I am thinking it is a path issue my paths are looking fine. And when I build OpenCV without GStreamer features it is working totally correct. Even when I build OpenCV with extra contrib modules and CUDA.
My variables for both user and system:
System PATHs
System and Enviroment Variables
User PATHs
I couldn't solve this for weeks. I found another solution today but I really want OpenCV to work with GStreamer. I would be glad if someone can solve.
question from:
https://stackoverflow.com/questions/65646874/dll-load-failed-while-importing-cv2 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…