I have a situation very much like the one at 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:\lib\opencv
on this 64-bit machine. I'm using 64-bit Python.
My PYTHONPATH variable: PYTHONPATH=C:\lib\opencv\build\python\2.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:\lib\opencv\build\x64\vc11
.
The solution at ImportError: DLL load failed: %1 is not a valid Win32 application says to add "the new opencv binaries path (C:\opencv\build\bin\Release
) to the Windows PATH environment variable". But as shown above, I already have the OpenCV binaries folder (C:\lib\opencv\build\x64\vc11\bin
) in my PATH. And my OpenCV installation doesn't have any Release folders (except for an empty one under build/java).
Any ideas as to what's going wrong? Can I tell Python to verbosely trace the loading process? Exactly what DLL's is it looking for?
Thanks, Lars
EDIT:
I just noticed that, according to http://www.dependencywalker.com/, the cv2.pyd
in C:\lib\opencv\build\python\2.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?
I found the solution, maybe you can try to use the cmd window rather than the anaconda prompt window to start you first scrapy test.
I just had this problem, it turns it was just because I was using x64 version of the opencv file. Tried the x86 and it worked.
First I copied
cv2.pyd
from/opencv/build/python/2.7/x86
toC:/Python27/Lib/site-packeges
. The error wasThen I installed
numpy-1.8.0-win32-superpack-python2.7.exe
and opencv works fine.