5

我正在尝试使用 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 获取更多信息以帮助诊断此错误的标准方法?

4

2 回答 2

3

我相信这是应用程序的问题,而不是py2app.

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

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

如果您真的找不到问题,请尝试从应用程序中剥离大部分内容,直到它运行,然后重新添加位直到它不运行,然后剥离等(如二进制搜索)以尝试找到有问题的部分。

于 2012-10-06T11:06:19.703 回答
3

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

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

这会将所有正常的 stderr 消息输出到控制台,以便您查看出了什么问题。

于 2013-01-11T13:56:55.470 回答