)、あなたはまだPythonのを起動する前にLD_LIBRARY_PATHを設定する必要があるかもしれません。明示的にロードする共有ライブラリが別の共有ライブラリを参照していて、そのライブラリの.soに "rpath"が設定されていない場合、既に読み込まれていても見つかりません。ライブラリ内のrpathは、そのライブラリが必要とする他のライブラリを検索するための検索パスを指定します。
たとえば、私が作成していない相互依存のサードパーティ製のライブラリがあります。 b.so参照a.so.私は事前にa.so読み込む場合でも:
ctypes.cdll.LoadLibrary('/abs/path/to/a.so')
ctypes.cdll.LoadLibrary('/abs/path/to/b.so')
をb.soはRPATHせずに、単に「a.so」を意味し、そうb.so」のdoesnのため、私は、第二の負荷にエラーが発生しますそれが正しいことを知っている。ですから、事前にLD_LIBRARY_PATHを設定して '/ abs/path/to'を含める必要があります。
LD_LIBRARY_PATHを設定する必要がないようにするには、.soファイルのrpathエントリを変更します。 Linuxでは、chrpathとpatchelfの2つのユーティリティがあります。 chrpathはUbuntuリポジトリから入手できます。それは一度もなかった.soのrpathを変更することはできません。 patchelfはより柔軟です。
のような他の動的ライブラリも見つけますが、これは問題を診断しますが解決しません。 – dbliss