我在Ubuntu16.04和Anaconda4.3.17(Python2.7)上遇到了这个问题。这个问题源于安装了Qt 5.6版本的anaconda,而我的系统Qt库是5.5版本。
一个快速的技巧是通过设置LD_LIBRARY路径来确保Anaconda库位于系统库之前:export LD_LIBRARY_PATH=$HOME/anaconda2/lib:$LD_LIBRARY_PATH
不幸的是,这将破坏使用Qt5.5的其他程序,因此您只能在100%Python的情况下使用它,例如,如果您使用--pylab启动ipython会话。
我通过查看libxqcb.so的链接方式发现了这个问题:
ldd $HOME/anaconda2/plugins/platforms/libqxcb.so
报告了以下错误:./libqxcb.so: /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5: version `Qt_5_PRIVATE_API' not found (required by ./libqxcb.so)
./libqxcb.so: /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5: version `Qt_5' not found (required by ./libqxcb.so)
./libqxcb.so: /usr/lib/x86_64-linux-gnu/libQt5Core.so.5: version `Qt_5' not found (required by ./libqxcb.so)
./libqxcb.so: /usr/lib/x86_64-linux-gnu/libQt5Core.so.5: version `Qt_5.6' not found (required by ./libqxcb.so)
错误信息是说他们找不到Qt_5.6,这是水蟒的版本。我系统上的版本是5.5,我通过查看此命令生成的文件名发现:ls /usr/lib/x86_64-linux-gnu/libQt*