未找到Python加载库

未找到Python加载库,python,loadlibrary,Python,Loadlibrary,我正在尝试从Python加载.dll。我正在使用Python 3.0.17114.1和Visual Studio 2017预览版。我收到一个错误,说“NameError:name LoadLibrary未定义” 下面是一个代码片段(请注意,这段代码非常完美): 所以我读了LoadLibrary,有几种不同的方法可以做到这一点。我试了所有我能找到的: cdll.LoadLibrary(theDll) CDLL.LoadLibrary(theDll) ctypes.CDLL.LoadLibrary(

我正在尝试从Python加载.dll。我正在使用Python 3.0.17114.1和Visual Studio 2017预览版。我收到一个错误,说“NameError:name LoadLibrary未定义”

下面是一个代码片段(请注意,这段代码非常完美):

所以我读了LoadLibrary,有几种不同的方法可以做到这一点。我试了所有我能找到的:

cdll.LoadLibrary(theDll)
CDLL.LoadLibrary(theDll)
ctypes.CDLL.LoadLibrary(theDll)
ctypes.LoadLibrary(theDll)

我是Python新手,所以我可能犯了一些愚蠢的错误。有人能提出建议吗?

您可以像这样访问
LoadLibrary

import ctypes
from ctypes import cdll 
from ctypes.util import find_library    
theDll = find_library('DsiLibrary_dll')
lib = cdll.LoadLibrary(theDll)
# do stuff with lib
:

在Linux上,需要指定文件名,包括 扩展以加载库,因此无法使用属性访问来 加载库。dll加载程序的LoadLibrary()方法 应该使用,或者您应该通过创建实例来加载库 通过调用构造函数来调用CDLL:

>>> from ctypes import *
>>> cdll.LoadLibrary("libc.so.6") 
<CDLL 'libc.so.6', handle ... at ...>
>>> libc = CDLL("libc.so.6")       
>>> libc
<CDLL 'libc.so.6', handle ... at ...>
>>>
>>从ctypes导入*
>>>cdll.LoadLibrary(“libc.so.6”)
>>>libc=CDLL(“libc.so.6”)
>>>libc
>>>

我使用了你的Windows方法,但这会产生相同的未定义错误。我从你的帖子中剪切并粘贴了。从ctypes导入ctypes从ctypes导入cdll.util导入find_library thedell=find_library('DsiLibrary\u dll')dsi_lib=cdll.LoadLibrary(thedell)我不知道你说的“联机查看”是什么意思。你是说你给我的剪子吗?也许这是VS2017预览版Python中的一个bug。你在用什么Python?是的,我在网上看到了,但它在VS2017预览Python上不起作用。可能是个bug。你把你的文件命名为ctypes.py吗?如果不是,可能是python有问题。。。
>>> from ctypes import *
>>> cdll.LoadLibrary("libc.so.6") 
<CDLL 'libc.so.6', handle ... at ...>
>>> libc = CDLL("libc.so.6")       
>>> libc
<CDLL 'libc.so.6', handle ... at ...>
>>>