本文将记录我在平时的工作学习中遇到得所有与标题相关得问题及解决办法,作为将来不至于犯同样得错误的参考。
1.
描述:pyQt程序使用py2app打包后运行,程序画面一闪而过,出现关闭,然后出现错误提示画面。
环境:Mac OS 10.6.8 64bit,python2.7,pyQt4.7
系统错误提示:On Mac OS X, you might be loading two sets of Qt binaries into the same process. Check that all plugins are compiled against the right Qt binaries. Export DYLD_PRINT_LIBRARIES=1 and check that only one set of binaries are being loaded.
错误分析:程序打包时将Qt库也打包进程序包内部,这样导致程序在本机上运行时就出现了不知道参照PC中的Qt库还是自己包内部的Qt库的矛盾,以至于错误发生。
解决办法:在源代码中指定程序将要参照的Qt库。
具体实现:在main()中添加QtCore.QCoreApplication.setLibraryPaths([])这样一条语句,给程序指定一个不存在(错误)的库参照地址。这样当程序运行时,首先会在这个错误的地址中查找库,结果显而易见,失败。接着程序就会自动查找自身所在目录,也就是你打包时加载进去的Qt库所在的文件夹。