ドキュメントによると、
Linuxでは、ライブラリをロードするために拡張子を含むファイル名を指定する必要があるため、属性アクセスを使用してライブラリをロードすることはできません。dllローダーのLoadLibrary()メソッドを使用するか、コンストラクターを呼び出してCDLLのインスタンスを作成してライブラリをロードする必要があります。
外部で開発された一連のPythonスクリプトを使用しています。それらはかなり標準的なlib(liblzma
)を必要とし、パス名を介してそれをロードするためにLoadLibrary
fromを使用します。ctypes
私の問題は、これらのスクリプトをいくつかの異なるLinuxインストールで実行する必要があり、将来的にはさらに実行する必要があることです。共有ライブラリの完全なファイル名とそのliblzma
場所は、システムごとに異なります。さまざまなlibバージョンに対してテストを行いましたが、競合は見つかりませんでした。
私が本当に必要としているのは、適切な名前をに渡すために、インストールされているライブラリのベース名を決定する方法LoadLibrary
です。
ldconfig -p
既存のライブラリを印刷するために使用し、出力を解析してライブラリ名を見つけることを検討しました。他のアイデアはありますか?
私は確かにここで私の要素から少し外れています。問題のあるスクリプトは、より大きなプロジェクトの必須部分にすぎません。