我看过关于这个主题的其他帖子,但我想知道是否有某种方法可以在不直接更改到库目录或显式指定绝对路径的情况下执行此操作,例如通过 sys.path.append 或在 Windows 上使用 PATH 或 CLASSPATH 环境变量。我现在要做的是加载“jvm.dll”
请您参考如下方法:
如果有问题的 DLL 没有任何依赖项,则可以通过将 ctypes 工厂传递给 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
