2

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

4

1 回答 1

0

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

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
于 2012-05-25T14:23:21.223 回答