linux 无法找到或加载Qt平台插件“xcb”

utugiqy6  于 2023-06-21  发布在  Linux
关注(0)|答案(6)|浏览(522)

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

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

错误是
此应用程序无法启动,因为它无法找到或加载Qt平台插件“xcb”。
重新安装应用程序可能会解决此问题。
流产
但是如果我尝试使用系统python,即/usr/bin/python test.py,它可以正常工作。
然后我试了一下ipythons,system和anaconda,结果和以前一样:anaconda ipython内核死了。
我尝试将ipython magic %matplotlib inline添加到代码中,anaconda ipython现在可以正常工作了。但是如果我用%pylab替换%matplotlib inline,anaconda ipython又死了。
注意:我使用的是Python 2.7。系统ipython的版本是2.3,anaconda ipython的版本是3.2。

hrysbysz

hrysbysz1#

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

import matplotlib
matplotlib.use('Agg')

我有一个CentOS7,Anaconda 3 -4.5.0,python3.5 pyqt版本5.6.0和qt版本5.6.0
如果您想在Tkinter窗口中使用图进行可视化,请用途:

matplotlib.use('TkAgg')
qaxu7uf2

qaxu7uf22#

Linux Mint 17,64位。在网上搜索了4个小时才解决!您需要在终端上从文件夹/anaconda 2/bin给予这些命令

sudo ./conda remove qt
sudo ./conda remove pyqt
sudo ./conda install qt
sudo ./conda install pyqt

希望能帮上忙!

juzqafwq

juzqafwq3#

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

    • 一个快速的技巧是通过设置LD_LIBRARY_PATH来确保Anaconda库在系统库之前:**
export LD_LIBRARY_PATH=$HOME/anaconda2/lib:$LD_LIBRARY_PATH

不幸的是,这会破坏其他使用Qt 5.5的程序,所以你只能在100% anaconda python的情况下使用它,例如,如果你用--pylab启动一个ipython会话。
通过查看www.example.com的链接方式,我发现这就是问题所在:libxqcb.so was linked:
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,这是anaconda的版本。我的系统上的版本是5.5,我通过查看此命令产生的文件名发现:

ls /usr/lib/x86_64-linux-gnu/libQt*
qnyhuwrf

qnyhuwrf4#

当使用类似ssh会话的东西来连接到一个使用X11图形库的软件时,也会发生这种情况。
尝试使用以下命令在图形用户界面中绘制图像时出现问题:

cv2.imshow()

plot.show()

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

cv2.imwrite('file.png')

plt.savefig('file.png')

我在使用深度神经网络时遇到了这个问题,该网络最初是为了与Jupyter notebook结合使用。当将图像写入文件而不是显示器时,代码运行了多个ssh隧道,而没有报告xcb和Qt错误。
顺便说一句,安装Qt4或Qt5的哪个变体并不重要。它仍然失败,并显示相同的错误消息。

9lowa7mx

9lowa7mx5#

我不得不升级几个python包才能让它工作。特别是:
pip3 install --upgrade pyside2 pyqt5

rvpgvaaj

rvpgvaaj6#

我也遇到过类似的问题。使用conda卸载matplotlib并使用pip重新安装解决了这个问题。我怀疑这与pip安装的opencv版本有关,他们都试图使用qt后端,但我不确定。

conda uninstall matplotlib
pip install matplotlib

相关问题