gpt4 book ai didi

python - 在 Windows Python 3.4 中加载 .dll 文件

转载 作者:行者123 更新时间:2023-11-30 05:36:50 25 4
gpt4 key购买 nike

目前,我使用的是 Anaconda Suite 中的 Python 3.4。我的工作目录中有一个名为“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 的调用,但出现相同的错误。作为背景,我从 C++ 文件创建并编译了“libPiCam.dll”文件以将其包装,从而允许我从 Python 调用 C++ 函数(我遵循了 Calling C/C++ from python? )。

那么,我该怎么办?

最佳答案

我注意到命名不太一致:libPiCam.dll"PiCamLib" 的问题不工作,而 PiCam.dll"picam" 相比。是case的问题吗?您是否尝试过 “libpicam”

否则,我不会对它是 Anaconda 发行版本身的问题感到惊讶。我有几个问题原来是 Anaconda 与 Windows 交互时发生的错误。 IE。 C++ 编译器无法正常工作,无法导入 pywin32,除非我出于某种原因使用 IPython 运行 .py 脚本,等等。

关于python - 在 Windows Python 3.4 中加载 .dll 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33427866/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com