一些Mac上的py2app在打开时会出现“意外退出”的情况。

3

我有一个使用最新版本的py2app在OSX 10.11.3上构建的Python应用程序。编译后的应用程序在我的Mac和另一个Mac 10.10.5上可以正常运行,但当在另一个Mac 10.11.3上打开时立即崩溃并显示"意外退出"。我的问题是如何修复这样的错误,如何找出到底是什么导致了崩溃?这是我正在使用的 setup.py:

"""
This is a setup.py script generated by py2applet

Usage:
    python setup.py py2app
"""

from setuptools import setup

APP = ['MyAppV1.2.py']
DATA_FILES = []
OPTIONS = {
                   'iconfile':'MyApp.icns',
                   'plist': {'CFBundleShortVersionString':'1.2',}
                   }

setup(
    app=APP,
    name='MyAppV1.2',
    data_files=DATA_FILES,
    options={'py2app': OPTIONS},
    setup_requires=['py2app'],
)

我做错了什么,或者说我如何查看编译后导致崩溃的原因?也许是某个包没有正确地捆绑,我如何查看哪些包被正确地捆绑了,哪些没有被正确地捆绑?

更新:

我按照下面的建议操作,并双击我的应用程序名称的可执行文件以在终端中运行,以获取某种错误日志记录。现在运行我的应用程序时,我会得到以下错误:

Traceback (most recent call last):
  File "/Applications/MyApp.app/Contents/Resources/__boot__.py", line 72, in <module>
    _setup_ctypes()
  File "/Applications/MyApp.app/Contents/Resources/__boot__.py", line 66, in _setup_ctypes
    from ctypes.macholib import dyld
ImportError: No module named ctypes.macholib

我不知道该从哪里开始,我该怎么做才能尝试解决这个问题呢?

谢谢你们的帮助。我遇到了同样的问题,只是发现我试图导入一个我不再需要的库。一旦我查看了包(右键单击->显示包内容),我就能够确定这一点。 - Ivo Vachkov
2个回答

3

您的设置文件似乎看起来不错。为了调试py2app打包的应用程序,您可以采取以下步骤:

  1. 右键单击已打包的.app文件 > "显示包内容"
  2. 进入“Contents”>“MacOS”
  3. 双击应用程序名称的可执行文件

这将使用终端控制台窗口打开您的应用程序,以便您可以调试导致应用程序崩溃的原因。


嗨,感谢您的回复。我已经在原问题上面添加了一个更新,所以有一些错误日志信息,但不确定如何修复。 - speedyrazor
请查看bootstrap_modules设置。更多信息请参见此处:http://stackoverflow.com/questions/23970240/how-to-stop-python-program-compiled-in-py2exe-from-displaying-importerror-no-mo - Andy92
这是针对Windows的py2exe,我如何在Mac上使用py2app做同样的事情? - speedyrazor

0

非常抱歉,这实际上是我的 Python 安装存在的一个包配置问题。我在另一台版本完全相同的 Mac 上进行了相同的构建,现在该应用程序在所有其他 Mac 上都可以正常打开和运行。对于错误问题,我再次表示抱歉。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接