Загрузка файла .dll в Windows Python 3.4

В настоящее время я использую Python 3.4 из Anaconda Suite. У меня есть файл с именем «libPiCam.dll» в моем рабочем каталоге, и я пытаюсь загрузить его таким образом:

from ctypes import cdll

def load(x):
"""Loads DLL library where argument is location of library"""x = cdll.LoadLibrary(x)
return x

lib = load("PiCamLib")

Но при этом я получаю этот трассировщик обратно

Traceback (most recent call last):

File "<ipython-input-27-8d86fac88101>", line 1, in <module>
runfile('C:/Users/User/Documents/Python Scripts/PicamCode/PixisTest.py', wdir='C:/Users/User/Documents/Python Scripts/PicamCode')

File "C:\Users\User\Anaconda3\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 685, in runfile
execfile(filename, namespace)

File "C:\Users\User\Anaconda3\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 85, in execfile
exec(compile(open(filename, 'rb').read(), filename, 'exec'), namespace)

File "C:/Users/User/Documents/Python Scripts/PicamCode/PixisTest.py", line 49, in <module>
piFunction = load(piFunctionLib)

File "C:/Users/User/Documents/Python Scripts/PicamCode/PixisTest.py", line 32, in load
x = cdll.LoadLibrary(x)

File "C:\Users\User\Anaconda3\lib\ctypes\__init__.py", line 429, in LoadLibrary
return self._dlltype(name)

File "C:\Users\User\Anaconda3\lib\ctypes\__init__.py", line 351, in __init__
self._handle = _dlopen(self._name, mode)

OSError: [WinError 193] %1 is not a valid Win32 application

Больше всего меня смущает то, что у меня есть файл с именем «PiCam.dll», и я загружаю его следующим образом:

picamLibrary = 'picam'
picam = cdll.LoadLibrary(picamLibrary)

И загружает, используя метод eLoad выше. Это работает без ошибок. Я попытался сформировать мой вызов для загрузки libPiCam таким же образом, но я получаю ту же ошибку. В качестве фона я создал и скомпилировал файл «libPiCam.dll» из файла C ++, чтобы обернуть его, что позволило мне вызывать функции C ++ из Python (я следовал Вызов C / C ++ из Python?).

Итак, что мне делать?

0

Решение

Я заметил, что наименование не совсем соответствует: проблема с libPiCam.dll против "PiCamLib" не работает, пока PiCam.dll против "picam" делает. Это проблема с делом? Ты пытался "libpicam"?

В противном случае, я не удивлюсь тому, что это проблема самого дистрибутива Anaconda. У меня было несколько проблем, которые, как оказалось, были ошибками, возникающими при взаимодействии Anaconda с окнами. То есть. компилятор c ++ не работает должным образом, не может импортировать pywin32, если я по какой-то причине не запускаю скрипт .py с IPython и т. д.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]