1

私は OSX オペレーティング システムが初めてで、Python から Java コードを起動しようとしています。

私は次のコードを使用しています:

import os 
import subprocess

subprocess.call([os.getcwd() + '/contents/home/bin/java', 
                '-jar', 
                os.getcwd() + '/Whoo.jar'])

スクリプトとして実行すると、期待どおりに機能します。しかし、Py2App ですべてをパッケージ化すると、アプリを実行しようとすると突然エラーが発生します。

アプリのビルド プロセス:

py2applet --make-setup test.py

その後、

python setup.py py2app -A

注: ビルド プロセス中にターミナルにエラーは表示されません。

アプリを起動すると、次のようになります。

ここに画像の説明を入力

コンソール出力:

2/21/13 6:08:06 PM  [0x0-0x32c32c].org.pythonmac.unspecified.start[5230]    argvemulator warning: fetching events failed
2/21/13 6:08:06 PM  [0x0-0x32c32c].org.pythonmac.unspecified.start[5230]    Traceback (most recent call last):
2/21/13 6:08:06 PM  [0x0-0x32c32c].org.pythonmac.unspecified.start[5230]      File "/Volumes/FLASH_DRIVE/App/start.app/Contents/Resources/__boot__.py", line 342, in <module>
2/21/13 6:08:06 PM  [0x0-0x32c32c].org.pythonmac.unspecified.start[5230]        _run()
2/21/13 6:08:06 PM  [0x0-0x32c32c].org.pythonmac.unspecified.start[5230]      File "/Volumes/FLASH_DRIVE/App/start.app/Contents/Resources/__boot__.py", line 335, in _run
2/21/13 6:08:06 PM  [0x0-0x32c32c].org.pythonmac.unspecified.start[5230]        exec(compile(source, script, 'exec'), globals(), globals())
2/21/13 6:08:06 PM  [0x0-0x32c32c].org.pythonmac.unspecified.start[5230]      File "/Volumes/FLASH_DRIVE/App/start.py", line 7, in <module>
2/21/13 6:08:06 PM  [0x0-0x32c32c].org.pythonmac.unspecified.start[5230]        os.getcwd() + '/Whoo.jar'])
2/21/13 6:08:06 PM  [0x0-0x32c32c].org.pythonmac.unspecified.start[5230]      File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 493, in call
2/21/13 6:08:06 PM  [0x0-0x32c32c].org.pythonmac.unspecified.start[5230]        return Popen(*popenargs, **kwargs).wait()
2/21/13 6:08:06 PM  [0x0-0x32c32c].org.pythonmac.unspecified.start[5230]      File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 679, in __init__
2/21/13 6:08:06 PM  [0x0-0x32c32c].org.pythonmac.unspecified.start[5230]        errread, errwrite)
2/21/13 6:08:06 PM  [0x0-0x32c32c].org.pythonmac.unspecified.start[5230]      File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 1249, in _execute_child
2/21/13 6:08:06 PM  [0x0-0x32c32c].org.pythonmac.unspecified.start[5230]        raise child_exception
2/21/13 6:08:06 PM  [0x0-0x32c32c].org.pythonmac.unspecified.start[5230]    OSError: [Errno 2] No such file or directory
2/21/13 6:08:06 PM  start[5230] start Error
2/21/13 6:08:10 PM  com.apple.launchd.peruser.501[94]   ([0x0-0x32c32c].org.pythonmac.unspecified.start[5230]) Exited with exit code: 255

誰がこれを引き起こしているのか知っていますか?

4

1 に答える 1

1

py2app に変換したアプリケーションの下の現在の作業ディレクトリは、直接呼び出した場合とは異なると思います。

の値をログに記録して、os.getcwd()どこから始まるかを確認してください

作業ディレクトリはフォルダー内のどこかにある可能性が非常に高い<application>.App/Contentsため、リソースを .App バンドルにコピーしない場合は、リソースを見つけるために 2 つまたは 3 つのディレクトリに移動する必要がある場合があります (ベスト プラクティスは、すべてのリソースを .App バンドル内に配置することです)。アプリケーションバンドル)。

于 2013-02-22T02:15:50.693 に答える