Error loading DLL in python, not a valid win32 application

oserror: [winerror 193] %1 is not a valid win32 application
winerror 193 %1 is not a valid win32 application jupyter
spacy oserror: (winerror 193) %1 is not a valid win32 application
sr warning winerror 193 %1 is not a valid win32 application
python 3 import dll
python load windows dll
self handle _dlopen(self name mode)
oserror winerror unspecified error

I am trying to load a DLL in python to call functions.

import ctypes
from ctypes import *

dsusb = ctypes.WinDLL('c:\python27\dsusb.dll')

I get the following error in my stack.

C:\Python27>python test.py
Traceback (most recent call last):
  File "test.py", line 4, in <module>
    dsusb = ctypes.WinDLL('c:\python27\dsusb.dll')
  File "C:\Python27\lib\ctypes\__init__.py", line 365, in __init__
    self._handle = _dlopen(self._name, mode)
WindowsError: [Error 193] %1 is not a valid Win32 application

I also tried cdll with the same code.

I looked up the error and windows says it's due to a path containing spaces... which I do not think is really the problem...

Am I loading this DLL wrong or is there something that might be wrong in the dll?

As the comments suggest, it could be an architecture problem.

If you're using a 32bit DLL with 64bit Python, or vice-versa, then you'll probably get errors.

Since I've had your error before, I recommend trying to load your DLL with 32bit Python.

Troubleshooting Windows dll imports in Python, If you attempt to load a static library, you will get the error: _name, mode) OSError: [WinError 193] %1 is not a valid Win32 application. Error: ImportError: DLL load failed: %1 is not a valid Win32 application. Cause The ArcGIS Pro 64-bit Python interpreter is attempting to import a 32-bit module, as the Environment Variable 'PYTHON' or 'PYTHONPATH' is referencing a folder containing the ArcMap 32-bit ArcPy module.

I had the same issue. I fixed by compiling my C code using the VS2015 x64 Native Tools Command Prompt. Now everything is 64bit.

[Solved] How to import C code through Python, Using that i figured out a way to call dlls from python code. 1. Firstly if your python If you do so you will get the below error: Quote: Traceback OSError: [​WinError 193] %1 is not a valid Win32 application. Lets say we have a  Not a valid Win32 application means that the python shell is running 32 bits, but the opencv package cv2 that it is attempting to import is NOT 32 bits. Opencv only seems to provide an x64 or x86 option; they must not have updated their instructions or links after they updated their code.

That error can also come if you don't have all the other required dlls. Make sure you have all other .dll files that your dll depend on. As someone else pointed, Dependency Walker is a good tool.

python ctypes error “WindowsError: [Error 193] %1 is not a valid , However, when I do import clr, I got the error: ImportError: DLL load failed: %1 is not a valid Win32 application. The python I have is 64 bit. It looks like it is  >>> import cv2 Traceback (most recent call last): File "<stdin>", line 1, in <module> ImportError: DLL load failed: %1 is not a valid Win32 application. I do understand there are many posts about this where it is suggested that the bitness of the package is different from the python package. However, everything I am running is 64 bits.

Error loading DLL in python, not a valid win32 application , Error loading DLL in python, not a valid win32 application. I am trying to load a DLL in python to call functions. import ctypes from ctypes import * dsusb = ctypes. ImportError: DLL load failed: %1 is not a valid Win32 application Only When Outside Python27 Directory 0 ImportError: No module named matplotlib even using pip install matplotlib

Error in Mapnik installation: "%1 is not a valid Win32 application , Mapnik precompiled binaries are only 32-bit. http://mapnik.org/pages/downloads.​html. Running it under a installation of Python that is 64-bit it  Win 32 application is specifically designed for the 32 bit OS. The extension that is embedded with the program is exe. This tutorial has been designed to resolve the issue when the system say that a particular program is not a valid win32 application. There are many reasons once again which lead to the issues.

Troubleshooting · microsoft/malmo Wiki · GitHub, Problem: On Windows, DLL load failed: %1 is not a valid Win32 application: C:\​Malmo-0.11.2-Windows-64bit\Python_Examples>python run_mission.py  What code are you trying to run? Note that Win32 does not indicate you are running 32 bit code, it is just a label indicating you are using a Windows platform. If it ain't broke, I just haven't gotten to it yet. OS: Windows 10, openSuse 42.3, freeBSD 11, Raspian "Stretch" Python 3.6.5, IDE: PyCharm 2018 Community Edition. The Castle of aaarrrrggh.

Comments
  • Make sure to match architecture -- 32-bit Python to 32-bit DLL, and so on. WinDLL switches to the stdcall calling convention. It should be clear from the header which convention to use.
  • Use a raw string for the path literal; 'p' and 'd' are ok, but you'll save yourself headaches in general. Or just use forward slashes. The Windows file API translates them to backslashes, except for long Unicode paths that use the '\\?\' prefix.
  • I changed the \ to /, with no change in output. I"m not sure, but I believe I am running the 32 bit of python (don't know where to check version on python). Not sure how to read DLL header... Any other ideas?
  • platform.architecture() returns whether the Python process is 32-bit or 64-bit, but this is just based on the pointer size, which you can do with ctypes.sizeof(ctypes.c_void_p). For the DLL you can use Dependency Walker or Visual Studio's dumpbin.
  • Looks like the it was due to me opening the 32bit dll with the 64bit python, you should make that an answer so I can vote for it.
  • How to do that?