私は現在、主に Jython を使用するプロジェクトに取り組んでいますが、Clojure との相互運用 (rik0 のpycljソリューションを使用) を利用してOvertoneライブラリを利用しています。通常、プロジェクトの依存関係を処理する主な方法は leiningen ですが、私は主に Jython を使用しているため、Jython を使用する際の依存関係の処理に役立つとは思えません。現在、私の現在の解決策は、leinを使用してjarにコンパイルし、クラスパスにjarを含めることです
jython -J-cp <path-to-jar>
ただし、Jython から Overtone を起動しようとすると、次のエラーが表示されます。
java.lang.UnsatisfiedLinkError: java.lang.UnsatisfiedLinkError: Unable to load library 'scsynth': dlopen(libscsynth.dylib, 9): image not found
これは、Overtone によって提供されるリソースであり、jar 内のファイルのマニフェストにリストされています。これは、クラスパスにjarを配置するだけでは、dylibのようにjarにパッケージ化されたリソースを含めるのに十分ではないか、またはJythonファイルがleinビルドでコンパイルおよび解決されていないという事実と関係があることを意味すると思います.
Jython と Clojure の間のこれらのリソースの依存関係を適切に解決するにはどうすればよいでしょうか?
編集:
そのため、Jython を実行する前に動的ライブラリ パスを libscsynth.dylib があるパスに設定することで、このGoogle グループの投稿から見つけたハッキーなソリューションを使用して動作させることができました。できれば、これを行うためのハックの少ない方法を希望しますが、当面はこれで十分です。誰かがこれを行う方法を知っている場合は、私に知らせてください。