anaconda python:无法找到或加载Qt平台插件"xcb"

Yan*_*Xie 21 python linux matplotlib ipython anaconda

在我的操作系统(Linux Mint Debian Edition 2)上,除了apt安装的系统python(/ usr/bin/python)之外,我还安装了anaconda.但是我遇到了使用anaconda python 运行以下代码的问题

# test.py
import matplotlib.pyplot as plt
import numpy as np
x = np.array([0, 1])
plt.scatter(x, x)
plt.show()
Run Code Online (Sandbox Code Playgroud)

错误是

此应用程序无法启动,因为它无法找到或加载Qt平台插件"xcb".

重新安装应用程序可能会解决此问题.

中止

但是,如果我尝试使用系统python,即/usr/bin/python test.py它可以正常工作.

然后我尝试了系统和anaconda的ipythons,结果和以前一样:anaconda ipython内核死了.

我尝试将ipython魔法添加%matplotlib inline到代码中,anaconda ipython现在正常工作.但是,如果我替换%matplotlib inline%pylab,蟒蛇再次的IPython死亡.

注意:我使用的是python 2.7.系统ipython的版本是2.3,anaconda ipython的版本是3.2.

小智 21

与Linux Mint 17,164位相同的问题.4小时后在网上搜索解决了!您需要从文件夹/ anaconda2/bin在终端上提供这些命令

sudo ./conda remove qt
sudo ./conda remove pyqt
sudo ./conda install qt
sudo ./conda install pyqt
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你!

  • 用anaconda 4.3.21尝试这个.对于python 2.7,它卸载了各种重要的软件包(`jupyter`,`matplotlib`等),而不仅仅是`qt`.这个解决方案对我不起作用.我试图在Rstudio上运行它,我得到同样的错误`这个应用程序无法启动,因为它无法找到或加载Qt平台插件"xcb". (2认同)

小智 14

为了解决这个问题,我在顶部添加了:

import matplotlib
matplotlib.use('Agg')
Run Code Online (Sandbox Code Playgroud)

我有 CentOS7、Anaconda3-4.5.0、python3.5 pyqt 版本 5.6.0 和 qt 版本 5.6.0

如果要在 Tkinter 窗口中使用绘图进行可视化,请使用:

matplotlib.use('TkAgg')
Run Code Online (Sandbox Code Playgroud)

  • 当 qt 应用程序调用使用 matplotlib 的 python 脚本时,此解决方案有效。 (3认同)

goa*_*ats 7

我在使用anaconda 4.3.17(Python 2.7)的Ubuntu 16.04上遇到了这个问题.问题源于安装了Qt 5.6版的anaconda,而我的系统Qt库版本为5.5.

快速入门是通过设置LD_LIBRARY_PATH来确保Anaconda库位于系统库之前:

export LD_LIBRARY_PATH=$HOME/anaconda2/lib:$LD_LIBRARY_PATH
Run Code Online (Sandbox Code Playgroud)

不幸的是,这将破坏使用Qt 5.5的其他程序,因此您只能在100%anaconda 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)
Run Code Online (Sandbox Code Playgroud)

错误消息说他们找不到Qt_5.6,这是anaconda的版本.我的系统上的版本是5.5,我通过查看由此命令产生的文件名找到了它:

ls /usr/lib/x86_64-linux-gnu/libQt*
Run Code Online (Sandbox Code Playgroud)


Eam*_*nny 7

当使用ssh 会话之类的东西连接到例如我最近发现的使用 X11 图形库的软件时,也可能会发生这种情况。

尝试在图形用户界面中使用以下方法绘制图像时会出现此问题:

cv2.imshow() 
Run Code Online (Sandbox Code Playgroud)

或者

plot.show()
Run Code Online (Sandbox Code Playgroud)

在这种情况下,您应该使用 ssh -XY 或者您应该考虑保存到文件,例如

cv2.imwrite('file.png')
Run Code Online (Sandbox Code Playgroud)

或者

plt.savefig('file.png')
Run Code Online (Sandbox Code Playgroud)

我在使用最初旨在与 Jupyter Notebook 结合使用的深度神经网络时遇到了这个问题。当将图像写入文件而不是显示时,代码会通过多个 ssh 隧道运行,而不会报告 xcb 和 Qt 错误。

顺便说一句,安装 Qt4 或 Qt5 的哪个变体并不重要。它仍然失败并出现相同的错误消息。