Cuando veo cosas como esto - por lo general es porque hay barras invertidas en el camino que se convierten
Por ejemplo, lo siguiente fallará porque \ t en la cadena se convierte en carácter TAB.
>>> import ctypes
>>> ctypes.windll.LoadLibrary("c:\tools\depends\depends.dll")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "c:\tools\python271\lib\ctypes\__init__.py", line 431, in LoadLibrary
return self._dlltype(name)
File "c:\tools\python271\lib\ctypes\__init__.py", line 353, in __init__
self._handle = _dlopen(self._name, mode)
WindowsError: [Error 126] The specified module could not be found
Hay 3 soluciones (si ese es el problema)
a) el uso dobles barras ...
>>> import ctypes
>>> ctypes.windll.LoadLibrary("c:\\tools\\depends\\depends.dll")
b) emplear la barra
>>> import ctypes
>>> ctypes.windll.LoadLibrary("c:/tools/depends/depends.dll")
c) utilice cadenas RAW (prefabricando la cadena con r
>>> import ctypes
>>> ctypes.windll.LoadLibrary(r"c:\tools\depends\depends.dll")
Mientras funciona este tercero, he tenido la impresión de vez en cuando de que no se considera "correcto" porque las cadenas RAW estaban destinadas a expresiones regulares. Lo he estado usando para rutas en Windows en Python durante años sin problema :))
¿Puede detallar la DLL que está tratando de importar y qué hace esa DLL? Puede estar intentando cargar otra DLL que no puede encontrar. – santosc
La respuesta a [esta pregunta] (http://stackoverflow.com/questions/2334627/error-loading-dll-in-path-with-parenthesis-using-ctypes-python) me la resolvió: ¿duplicar? – Junuxx