Я тестирую небольшую программу на Python, которая называется библиотеками DLL.
Моя система - 64-битная Windows 7. Исполняемый файл Python - это тот, который поставляется с 64-битной Anaconda3, запущенной в виртуальной среде Anaconda.
Первое, что привлекло мое внимание, это то, что этот код Python
sys.platform
возвращает win32 даже для AMD64 Arch, "platform.machine ()", похоже, возвращает более точный результат.
Python 3.7.3 (default, Mar 27 2019, 17:13:21) [MSC v.1915 64 bit (AMD64)] on win32
Я нашел несколько сообщений SO, обсуждающих эту проблему, таких как this .
, а затем программа не удалось загрузить файл DLL:
windll.LoadLibrary(realpath(join(_module_location, 'dlh', 'win64', 'I_cant_tell_you_the_name.dll')))
Сообщение об ошибке:
OSError: [WinError 193] %1 is not a valid Win32 application
Вопрос в том, почему python не может загрузить 64-битную DLL в 64-битной среде? мне показалось, что вместо этого компилятор настоял на загрузке 32-битной DLL. Это почему? Или что созданная Anaconda версия поддерживает только 32-битный код?
К сожалению, у меня не было 32-битной DLL для тестирования, иначе я бы хотел посмотреть, как все прошло.