jythonプログラムを実行可能なjarファイルにパッケージ化しようとしています.Jarthonプログラムをダブルクリックしてjythonをインストールしなくても簡単に実行できます。最終的に、私は瓶で書いた追加の図書館を含めたいと思いますが、現時点では単純なプログラムをパッケージ化して、それを瓶から実行させようとしています。実行可能なjarファイルにJythonプログラムをパッケージ化する
私はここに「ジャーメソッドを使用する」セクションでのjarの指示に従って試してみました:私もここにスライド25-28を見てきましたJython FAQ: Using the Jar Method
そして最後に、ここで: stackoverflow Question: Distributing My Python Scripts as Jars with Jython
OS X 10.8.3を実行しているmy macにjython 2.5.3、jvm 1.6、python 2.7.3をインストールしました。
これらは、jarファイルを作成し、それを実行するために私が通過する手順は次のとおりです。
- 私のJythonのインストールディレクトリからjython.jarのコピーを作成します。
zip -r jython_copy.jar Lib
(LibはJythonのインストールディレクトリ内のフォルダです)cp myJythonProgram.py __run__.py
(myJythonProgram.py 'の場合名 == メイン' 行が含まれていません)zip jython_copy.jar __run__.py
export CLASSPATH=/path/to/my/app/jython_copy.jar:$CLASSPATH
これらの3つの方法のすべてを使用してjarを実行しようとしました:
java org.python.util.jython -jar myapp.jar
java -cp myapp.jar org.python.util.jython -jar myapp.jar
java -jar myapp.jar -jar myapp.jar
私のプログラムは、任意のimportステートメントを使用していない場合、これは動作します。
しかし、私はjarを実行するといくつかのpythonパッケージが見つからないという問題に遭遇しています。たとえば、プログラムに「from random import random
」という行を含めると、「ImportError:No module random」というエラーが表示されます。 javax.swing、java.awt、time、またはmathからインポートすると、プログラムの行にエラーは発生しません。
zip jython_copy.jar myLibrary.jar
jar ufm jython_copy.jar othermanifest.mf
また、私は自分のライブラリと瓶と私の前の手順を使用してライブラリだけでなく、次の追加手順をインポートJythonのプログラムをパッケージ化してみました
othermanifest.mfには、Class-Path: ./myLibrary.jar
という行のみが含まれています。私は私が間違ってやったり、私が取るべき他のステップ午前何に任意の洞察力をいただければ幸いです
:
これもエラーに「MYLIBRARYという名前のモジュールはImportError」を提供します。
ありがとうございます!
http://wiki.python.org/jython/JythonFaq/DistributingJythonScripts#Using_Mavenに記載されているMaven Jythonプラグインを試してみましたか? –
まだありませんが、私はこのメソッドを動作させることができない場合、それは私の次のステップです。 – Kyle