ABC 类在 Py2app 应用程序和系统库中都实现了。将使用两者之一
Posted
技术标签:
【中文标题】ABC 类在 Py2app 应用程序和系统库中都实现了。将使用两者之一【英文标题】:Class ABC is implemented in both Py2app App and System Library. One of the two will be used 【发布时间】:2012-06-17 02:24:07 【问题描述】:我正在尝试通过 Py2app 在 Mac OS Lion 上打包使用 PyQt 的应用程序 Mnemosyne。
我遇到如下几个错误:
objc[2826]:类 QCocoaView 在两者中都实现了 /Volumes/Bullfrog/patrick/m2/./dist/Mnemosyne.app/Contents/MacOS/../Frameworks/libQtGui.4.dylib 和 /opt/local/lib/libQtGui.4.dylib。将使用两者之一。 哪一个是未定义的。 objc[2826]:类 QCocoaWindow 在两者中都实现了 /Volumes/Bullfrog/patrick/m2/./dist/Mnemosyne.app/Contents/MacOS/../Frameworks/libQtGui.4.dylib 和 /opt/local/lib/libQtGui.4.dylib。将使用两者之一。 哪一个是未定义的。
该类的第一个版本是在 Py2App 中使用的,也是应该使用的(我正在尝试使应用程序独立)。第二个是我通过 MacPorts 安装的系统 Qt。我必须向应用程序添加什么才能使其使用捆绑的 Qt 而不是系统 Qt?
还有几个这样的陈述:
在 Mac OS X 上,您可能会将两组 Qt 二进制文件加载到 相同的过程。检查所有插件是否针对正确的 Qt 编译 二进制文件。导出 DYLD_PRINT_LIBRARIES=1 并检查只有一组 正在加载二进制文件。 QObject::moveToThread: 当前线程 (0x10246c880) 不是对象的线程 (0x106985d00)。无法移动到 目标线程(0x10246c880)
老实说,仅基于此错误消息,我真的不明白如何在这里做我需要做的事情(我不是编码员;我只是在尽力打包软件)。
【问题讨论】:
【参考方案1】:This article 给出了解决方案:只需在应用程序的 Content/Resources 目录中添加一个空白的 qt.conf 文件。
【讨论】:
以上是关于ABC 类在 Py2app 应用程序和系统库中都实现了。将使用两者之一的主要内容,如果未能解决你的问题,请参考以下文章
JavaLaunchHelper 类在... libinstrument.dylib 中都实现了。将使用两者之一。哪个是未定义的