如何获取有关py2app错误的更多信息?

时间:2012-09-21 18:46:11

标签: py2app

我正在尝试使用py2app打包混合的Python / C ++应用程序。我的setup.py是

from setuptools import setup
setup(app=['voxpopuli.py'],data_files=[],options=
  {'py2app'{'argv_emulation':True}},setup_requires=['py2app'])

我通过

调用py2app
python setup.py py2app --no-strip --iconfile /Users/irving/otherlab/other/bin/OLicon.icns --resources /opt/local/lib/Resources/qt_menu.nib

这完成没有警告或错误,但当我尝试运行结果应用程序弹出一个简单的“voxpopuli Error”窗口。它有一个“打开控制台”按钮,但唯一的控制台消息是

9/21/12 11:43:14.691 AM voxpopuli[52765]: voxpopuli Error
9/21/12 11:43:15.926 AM com.apple.launchd.peruser.501[158]: ([0x0-0x177d77c].org.pythonmac.unspecified.voxpopuli[52765]) Exited with code: 255

是否有标准方法可以从py2app中获取更多信息以帮助诊断此错误?

2 个答案:

答案 0 :(得分:3)

我认为这是应用程序的问题,而不是py2app

如果应用程序遇到未处理的异常,它将像这样退出。您使用的是哪个版本的osx?在10.8中,它们停止自动将stderr转发到控制台,因此可能需要将应用程序stdoutstderr通过管道传输到文件中,以查看是否有堆栈跟踪。

虽然如果它是C ++部分中的错误,我猜你不会看到堆栈跟踪,但错误可能在应用程序的那一部分。

如果你真的找不到问题,请尝试从应用程序中删除大部分,直到它运行然后再添加位,直到它不运行,然后剥离等(如二进制搜索)尝试找到违规的部分。

答案 1 :(得分:3)

构建软件包后,您仍然可以从命令行运行“应用程序”。

例如,对于~/Projects/MyApp内置到文件夹~/Projects/MyApp/dist中的项目,您会发现可以从命令行运行以下内容:~/Projects/MyApp/dist/MyApp.app/Contents/MacOS/MyApp

这会将所有正常的stderr消息输出到控制台,以便您可以看到出错的地方。