5

それらを利用する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

しかし、何も起こらず、エラーは返されません。誰かがこれを行う方法について簡単なステップバイステップのチュートリアルを提供できますか? どうもありがとう!

4

2 に答える 2

0
coll = COLLECT(exe,
           a.binaries,
           a.zipfiles,
           a.datas,
           [('sikulijar', jar_path, 'PKG')],
           strip=None,
           upx=True,
           name='test')

タプルの 'sikulijar' を単にjar (定義済みの変数) に変更します。コードで使用したのと同じ名前を参照する必要があります。

しかし、私はまだ JVM を適切に初期化しようとしています。それがわかったら投稿します。

于 2015-09-11T17:44:35.393 に答える