(当将.app移动到另一台机器时,PyQt4,py2app和pyinstaller崩溃

时间:2014-11-07 19:03:00

标签: python pyinstaller py2app

所以我试图使用PyQt4和py2app或pyinstaller从python构建一个Mac osx应用程序。这两个脚本构建的应用程序在我的构建机器上运行正常(运行mavericks 10.9.5)但是当我尝试在另一台机器上使用它们时它们都会崩溃EXC_BAD_INSTRUCTION然后列出QT库。

我认为我的应用程序可能不包含构建中的Qt库。我的py2app设置文件如下所示

This is a setup.py script generated by py2applet

Usage:

    python setup.py py2app

from setuptools import setup

APP = ['FudgeTestpy.py']
DATA_FILES = []
OPTIONS = {'argv_emulation': True, 'includes': ['sip', 'PyQt4', 'PyQt4.QtCore', 'PyQt4.QtGui'], 

'excludes': ['PyQt4.QtDesigner', 'PyQt4.QtNetwork', 'PyQt4.QtOpenGL', 'PyQt4.QtScript', 
'PyQt4.QtSql', 'PyQt4.QtTest', 'PyQt4.QtWebKit', 'PyQt4.QtXml', 'PyQt4.phonon']}

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

3 个答案:

答案 0 :(得分:0)

我实际上通过安装MacPorts并安装python27来解决这个问题。我无法使用py2app在OS X中使用系统python构建独立的应用程序包。因此,为了构建独立的PyQt应用程序,我在MacPorts下设置了Python,PyQt等。

答案 1 :(得分:0)

我解决了这个问题。你在使用python的brew环境吗? 如果是这样,尝试在默认的python环境中构建它,而不是brew。

答案 2 :(得分:0)

我有同样的问题 - 我的设置是python3和pyqt4,都是通过brew安装的。首先,我完全删除了brew:

cd `brew --prefix`
rm -rf Cellar
brew prune
rm -rf Library .git .gitignore bin/brew README.md share/man/man1/brew
rm -rf ~/Library/Caches/Homebrew

(这些步骤取自here) 安装macports后,pyqt4 lib由

安装
sudo port install py34-pyqt4

这将自动安装python3和所有必需的依赖项。请注意,macports将python(和所有其他东西)安装到/ opt / local / bin。 在macports中还有一个py2app包,所以不需要使用pip:

sudo port install py34-py2app

现在在其他系统上运行打包应用程序没有问题。我不是100%确定底层问题究竟是什么,但在我的情况下,我怀疑通过brew的sip对我的系统进行了一些优化导致了不兼容性......