所以我试图使用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'],
)
答案 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对我的系统进行了一些优化导致了不兼容性......