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: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 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).
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: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?
22 Answers
Unofficial Windows Binaries for Python Extension Packages
you can find any python libs from here
Please check if the python version you are using is also 64 bit. If not then that could be the issue. You would be using a 32 bit python version and would have installed a 64 bit binaries for the OPENCV library.
Wow, I found yet another case for this problem. None of the above worked. Eventually I used python’s ability to introspect what was being loaded. For python 2.7 this means:
import imp
imp.find_module("cv2")
This turned up a completely unexpected “cv2.pyd” file in an Anaconda DLL directory that wasn’t touched by multiple uninstall/install attempts. Python was looking there first and not finding my good installation. I deleted that cv2.pyd file and tried imp.find_module(“cv2”) again and python immediately found the right file and cv2 started working.
So if none of the other solutions work for you, make sure you use python introspection to see what file python is trying to load.
In my case, I have 64bit python, and it was lxml that was the wrong version–I should have been using the x64 version of that as well. I solved this by downloading the 64-bit version of lxml here:
https://pypi.python.org/pypi/lxml/3.4.1
lxml-3.4.1.win-amd64-py2.7.exe
This was the simplest answer to a frustrating issue.
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.
I had the same problem. Here’s what I did:
-
I downloaded pywin32 Wheel file from here, then
-
I uninstalled the pywin32 module. To uninstall execute the following command in Command Prompt.
pip uninstall pywin32
-
Then, I reinstalled pywin32. To install it, open the Command Prompt in the same directory where the pywin32 wheel file lies. Then execute the following command.
pip install <Name of the wheel file with extension>
Wheel file will be like: piwin32-XXX-cpXX-none-win32.whl
It solvs the problem for me. You may also like to give it a try. Hope it work for you as well.
If your build-system (CMake in my case) copies the file from <name>.dll
to <name>.pyd
, you will get this error if the original file wasn’t actually a dll. In my case, building shared libraries got switched off, so the underlying file was actually a *.lib
.
I discovered this error by loading the pyd
file in DependencyWalker and finding that it wasn’t valid.
I copied cv2.pyd
file from /opencv/build/python/2.7/x86
folder instead of from /x64
folder to C:/Python27/Lib/site-packeges
. I followed rest of the instructions provided here.
Added by someone else, not verified: I also copy file cv2.pyd
to folder C:/Python27/Lib/site-packages/cv2
. It works.
Update numpy.
pip install numpy --upgrade
Work for me!!
For me the problem was that I was using different versions of Python in the same Eclipse project. My setup was not consistent with the Project Properties and the Run Configuration Python versions.
In Project > Properties > PyDev, I had the Interpreter set to Python2.7.11.
In Run Configurations > Interpreter, I was using the Default Interpreter. Changing it to Python 2.7.11 fixed the problem.
I faced the same issue when I uninstalled and reinstalled a different version of 2.7.x of Python on my system using a 32 bit Windows Installer. I got the same error on most of my import statements. I uninstalled the newly installed Python and downloaded a 64 bit Windows installer and reinstalled Python again and it worked. Hope this helps you.
So I had problems installing vtk under windows (as I use python 3.7 there is no binary available so far just for older python versions pip install vtk is not working)
I did wrote python in my cmd:
Python 3.7.3 on win32
So I now know I have python 3.7.3 runing on a 32 bit.
I then downloaded the correct wheel at VTK‑8.2.0‑cp37‑cp37m‑win32.whl
Next I instlled that wheel:
pip install VTK-8.2.0-cp37-cp37m-win32.whl
Then I tested it and it worked:
python
import vtk
This one worked with me
pip install -- pywin32==227
I experienced the same problem while trying to write a code concerning Speech_to_Text.
The solution was very simple. Uninstall the previous pywin32 using the pip method
pip uninstall pywin32
The above will remove the existing one which is by default for 32 bit computers. And install it again using
pip install pywin32
This will install the one for the 64 bit computer which you are using.
First I copied cv2.pyd
from /opencv/build/python/2.7/x86
to C:/Python27/Lib/site-packeges
. The error was
“RuntimeError: module compiled against API version 9 but this version of numpy is 7”
Then I installed numpy-1.8.0-win32-superpack-python2.7.exe
and opencv works fine.
>>> import cv2
>>> print cv2.__version__
2.4.13
You can install opencv
from official or unofficial sites.
Refer to this question and this issue if you are using Anaconda
.
- Please make sure that you have installed python 2.7.12 or below version otherwise you will get this error definitely.
- Make sure Oracle client is 64 bit installed if OS is 64 Bit.
- Make sure Microsoft Visual C++ Compiler for Python 2.7 is 64 for bit for 64 bit Os or 32 bit for 32 bit. Note:- IF ur OS is 64 bit install all package of 64 bit or if Os is 32 bit install 32 bit package.
It has a very simple solution.
After installing opencv
place
cv2.pyd
from C:opencvbuildpython2.7 **x64**
to C:Python27Libsite-packages
instead of, place cv2.pyd
from C:opencvbuildpython2.7 **x86**
to C:Python27Libsite-packages
I got this error when trying to import MySQLdb.
What worked for me was to uninstall Python and then reinstall it.
I got the error after installing npm (https://www.npmjs.com/get-npm). One thing it did was install Python even though I already had it.
This has worked for me. I have tried different methods but this was my best solution.
Open command prompt and type the following;
pip install opencv-python
.
(make sure your internet is on).
after that try importing it again.
It could also be that your anaconda
version is 32 bit
when it should be 64 bit
.
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.