Проблемы с импортом модуля DLL в Python
Вы столкнулись с проблемой при попытке импортировать модуль libuvc.dll в Python на Windows 10. Несмотря на успешную компиляцию и импорт библиотеки с использованием той же версии Python в Linux, теперь вы сталкиваетесь с трудностями в Windows.
Ошибка, с которой вы столкнулись, предполагает, что Python не может найти файл libuvc.dll. модуль по пути, полученному с помощью ctypes.util.find_library('libuvc')'. Однако вы проверили существование файла в этом месте.
Виноват функция cdll.LoadLibrary. В версиях Python до 3.8 параметр «winmode» не существовал, и «mode» использовался напрямую. Значением по умолчанию для параметра «mode» было «ctypes.DEFAULT_MODE», что соответствует нулю.
Однако в Python 3.8 и более поздних версиях был введен параметр «winmode» для указания режима поиска DLL. По умолчанию для него установлено значение «Нет», что соответствует «nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS». К сожалению, этот режим поиска игнорирует изменения в 'os.environ['PATH'], sys.path' и 'os.add_dll_directory'.
Решение:
Чтобы решить эту проблему, явно установите для параметра winmode значение 0 в функции LoadLibrary. Это заставит Python использовать полный путь и успешно импортировать модуль.
import ctypes
name = ctypes.util.find_library('libuvc')
lib = ctypes.cdll.LoadLibrary(name, winmode=0)
Указывая 'winmode=0', вы обходите режим поиска по умолчанию и гарантируете, что Python загрузит DLL из ожидаемого местоположения.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3