我是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
任何人都知道造成这种情况的原因是什么?
答案 0 :(得分:1)
我猜想py2app转换后的应用程序下的当前工作目录与直接调用它时不同。
尝试记录os.getcwd()
的值以查看它从
工作目录很可能位于<application>.App/Contents
文件夹中的某个位置,因此如果您没有将资源复制到.App软件包中,您可能需要上两个或三个目录才能找到资源(最好实践是在Application bundle中包含所有资源。