Когда я вижу подобные вещи - обычно это происходит из-за обратного слеша на пути, который преобразуется.
Например, следующее не будет выполнено, потому что \ t в строке преобразуется в символ табуляции.
>>> 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
Есть 3 решения (если это проблема)
а) Используйте двойные косые черты ...
>>> import ctypes
>>> ctypes.windll.LoadLibrary("c:\\tools\\depends\\depends.dll")
б) использовать косую черту
>>> import ctypes
>>> ctypes.windll.LoadLibrary("c:/tools/depends/depends.dll")
в) использовать строки в формате RAW (предваряя строку с помощью r
>>> import ctypes
>>> ctypes.windll.LoadLibrary(r"c:\tools\depends\depends.dll")
Хотя этот третий работает - у меня время от времени создается впечатление, что он не считается «правильным», потому что строки RAW предназначались для регулярных выражений. Я использовал его для путей в Windows в Python в течение многих лет без проблем :))