如何在Mac OSX下打包PySide / Phonon应用程序?

时间:2012-07-03 09:53:25

标签: osx-lion pyside py2app phonon

我有一个PySide / Phonon应用程序(在Windows上开发并完美运行)我需要“移植”到Mac OSX - 我没有任何开发经验。 如果我只是运行Python文件,应用程序会按预期工作 - 当我尝试使用py2app打包它(我需要这样做)时会出现问题。

如果我按原样保留生成的.app,Phonon不起作用,因为它无法加载所需的phonon_backend;如果我将插件路径添加到qt.conf,正如各种来源所示,Phonon似乎加载(也就是说,我不再得到相应的错误消息),但我开始得到“某某某某库已加载”两次,一次将被使用,哪一次未定义“错误,应用程序立即崩溃。

最后,如果我尝试使用macdeploy_qt工具,我会收到“无外部框架”效果的消息,结果在功能上等同于我在不使用该工具的情况下获得的结果,除了还有一些插件相关目录。

任何想法/指针/教程/等?顺便说一下,我正在使用PySide1.1.1进行Qt4.7,而Python和python二进制文件也是如此(否则py2app甚至无法开始构建一个独立的应用程序)。

1 个答案:

答案 0 :(得分:3)

我建议你像in this tutorial一样。

然后你只需要在主模块顶部的某处添加以下行:

QApplication.setLibraryPaths([os.path.join(os.environ['_MEIPASS2'], 'qt4_plugins'), os.environ['_MEIPASS2'] ])

对于PyInstaller> 1.5,应使用以下代码:

QApplication.setLibraryPaths([os.path.join(sys._MEIPASS, 'qt4_plugins'), sys._MEIPASS])