ctypes不会加载库

时间:2012-05-25 14:08:24

标签: python dll ctypes

我已经查看了有关此主题的其他帖子,但我想知道是否有某种方法可以在不直接更改到库目录或显式指定绝对路径(例如通过sys.path)的情况下执行此操作。在Windows上追加或使用PATH或CLASSPATH环境变量。我现在要做的就是加载" jvm.dll"

1 个答案:

答案 0 :(得分:0)

如果有问题的DLL没有任何依赖关系,则可以通过将ctypes factory传递给DLL的绝对路径(您可以根据需要确定)来加载库。但是,DLL通常捆绑在一起并具有相互依赖性。最强大的赌注可能是将包含DLL的目录添加到os.environ['PATH'],以确保操作系统库加载程序可以自动解析依赖DLL。请注意,如果您担心污染环境,可以暂时执行此操作。

dll_dir = r'c:\foo\bar\path'
tmp = os.environ['PATH']
os.environ['PATH'] = dll_dir + ';' + tmp
ctypes.LoadLibrary( dll_name )
os.environ['PATH'] = tmp