Ctypes: [WinError 126] Не могу найти DLL - PullRequest
0 голосов
/ 14 декабря 2018

Я знаю, что есть много тем о WinError 126 и так далее.Но мне действительно нужна помощь ...

У меня есть такой каталог:

  • mytestscript.py
  • my32bit.dll
  • my64bit.dll

У меня установлен 32-битный и 64-битный интерпретатор Python.Теперь, если я запускаю mytestscript.py с 32-битным интерпретатором, все работает нормально.

import ctypes
dll = ctypes.windll.LoadLibrary("my32bit.dll")
print(dll)

Но если я запускаю его с 64-битным интерпретатором

import ctypes
dll = ctypes.windll.LoadLibrary("my64bit.dll")
print(dll)

, я получаю следующую ошибку:

Traceback (most recent call last):
  File "C:/Users/Heinzeri/Desktop/TEMPY/mytestscript.py", line 4, in <module>
    dll = ctypes.windll.LoadLibrary("my64bit.dll")
  File "C:\Program Files\Python37-64\Lib\ctypes\__init__.py", line 434, in LoadLibrary
    return self._dlltype(name)
  File "C:\Program Files\Python37-64\Lib\ctypes\__init__.py", line 356, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: [Error 126] The specified module could not be found

В чем может быть причина того, что 64-битный Python не находит DLL?Нужно ли добавлять его в PATH / PYTHONPATH?Нужен ли Microsoft Microsoft Redistributable?

DLL проверяются на 64-битную и 32-битную версию и поставляются поставщиком.

1 Ответ

0 голосов
/ 14 декабря 2018

Это также может означать, что отсутствует другая зависимость.Пожалуйста, используйте Зависимости (наследник Dependency Walker), чтобы проверить, что происходит за кулисами.

Возможно, отсутствует некоторое время выполнения для 64-битной версии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...