Skip to content
Advertisement

ImportError: DLL load failed: %1 is not a valid Win32 application. But the DLL’s are there

I have a situation very much like the one at Error “ImportError: DLL load failed: %1 is not a valid Win32 application”, but the answer there isn’t working for me.

My Python code says:

import cv2

But that line throws the error shown in the title of this question.

I have OpenCV installed in C:libopencv on this 64-bit machine. I’m using 64-bit Python.

My PYTHONPATH variable: PYTHONPATH=C:libopencvbuildpython2.7. This folder contains cv2.pyd and that’s all.

My PATH variable: Path=%OPENCV_DIR%bin;... This folder contains 39 DLL files such as opencv_core246d.dll.

OPENCV_DIR has this value: OPENCV_DIR=C:libopencvbuildx64vc11.

The solution at Error “ImportError: DLL load failed: %1 is not a valid Win32 application” says to add “the new opencv binaries path (C:opencvbuildbinRelease) to the Windows PATH environment variable”. But as shown above, I already have the OpenCV binaries folder (C:libopencvbuildx64vc11bin) in my PATH. And my OpenCV installation doesn’t have any Release folders (except for an empty one under build/java).

What’s going wrong? Can I tell Python to verbosely trace the loading process? Exactly what DLL files is it looking for?

I noticed that, according to http://www.dependencywalker.com/, the cv2.pyd in C:libopencvbuildpython2.7 is 32-bit, whereas the machine and the Python I’m running are 64-bit. Could that be the problem? And if so, where can I find a 64-bit version of cv2.pyd?

Advertisement

Answer

Unofficial Windows Binaries for Python Extension Packages

You can find any Python libraries from here.

Advertisement