それらを利用するpythonプロジェクトのアーカイブとして.jarファイルをバンドルするようにpyinstallerを取得するにはどうすればよいですか?
たとえば、exe を作成するには ( sikuli-standalone jarの処理に pyjnius を使用しています):
# test.py
import os
import sys
# set the classpath so java can find the code I want to work with
sikuli_jar = '/sikuli-api.standalone-1.0.3-Pre-1.jar'
jarpath = os.path.dirname(os.path.realpath(__file__)) + sikuli_jar
os.environ['CLASSPATH'] = jarpath
# now load a java class
from jnius import autoclass
API = autoclass('org.sikuli.api.API')
Pyisntaller は、( 1 つのフォルダー) exe を次のように作成します。
pyinstaller -d test.py
しかし、私の知る限り、jarはバンドルされておらず、Pyinstallerによって生成されたフォルダーに手動で配置しない限り、exeにアクセスできません
Pyinstaller マニュアルによると:
「CArchive には、詰め込みたいものがすべて含まれています。.zip ファイルによく似ています。」
次に、以前に自動生成され test.spec
たファイルを次のように編集してみます。
jar = 'sikuli-api.standalone-1.0.3-Pre-1.jar'
jar_path = 'C:\\Python27\\Lib\\site-packages\\sikuli-0.1-py2.7.egg\\sikuli\\' + jar
coll = COLLECT(exe,
a.binaries,
a.zipfiles,
a.datas,
[('sikulijar', jar_path, 'PKG')],
strip=None,
upx=True,
name='test')
そして、このスペックファイルに基づいてexeをビルドしてみます:
python C:\workspace\code\PyInstaller-2.1\PyInstaller\build.py --onefile test.spec
しかし、何も起こらず、エラーは返されません。誰かがこれを行う方法について簡単なステップバイステップのチュートリアルを提供できますか? どうもありがとう!