2

このトピックに関する他の投稿を見てきましたが、ライブラリのディレクトリに直接変更したり、sys.path.append や PATH を使用するなどして絶対パスを明示的に指定したりせずに、これを行う方法があるかどうか疑問に思っていました。または Windows の CLASSPATH 環境変数。私が今やろうとしているのは、「jvm.dll」をロードすることです

4

1 に答える 1

0

問題の DLL に依存関係がない場合は、ctypes ファクトリに DLL への絶対パスを渡すことで、ライブラリをロードすることができます (任意に決定できます)。ただし、DLL はしばしば一緒にバンドルされ、相互依存関係があります。おそらく最もos.environ['PATH']確実な方法は、DLL を含むディレクトリを に追加して、依存する 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 に答える