Quando vedo cose come questa - di solito è perché ci sono i backslash nel percorso che viene convertito.
Per esempio - quanto segue fallirà - perché \ t nella stringa viene convertita in carattere 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
ci sono 3 soluzioni (se questo è il problema)
a) Utilizzare le doppie barre ...
>>> import ctypes
>>> ctypes.windll.LoadLibrary("c:\\tools\\depends\\depends.dll")
b) utilizzare le barre
>>> import ctypes
>>> ctypes.windll.LoadLibrary("c:/tools/depends/depends.dll")
c) utilizzare stringhe RAW (precedere la stringa con r
>>> import ctypes
>>> ctypes.windll.LoadLibrary(r"c:\tools\depends\depends.dll")
Mentre questo terzo funziona, ho avuto l'impressione di volta in volta che non è considerato "corretto" perché le stringhe RAW erano pensate per le espressioni regolari. L'ho usato per i percorsi su Windows in Python per anni senza problemi :))
È possibile elaborare la DLL che si sta tentando di importare e che cosa fa quella DLL? Potrebbe anche provare a caricare un'altra DLL che non riesce a trovare. – santosc
La risposta a [questa domanda] (http://stackoverflow.com/questions/2334627/error-loading-dll-in-path-with-parenthesis-using-ctypes-python) l'ha risolto per me: duplicato? – Junuxx