web-dev-qa-db-fra.com

Impossible de trouver ou de charger le plug-in de plate-forme Qt "xcb"

Sur mon système d'exploitation (Linux Mint Debian Edition 2), à l'exception du système python (/usr/bin/python ) installé par le apt, j'ai également installé le anaconda. Mais j'ai rencontré un problème lors de l'exécution du code suivant avec le anaconda python

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

L'erreur est

Cette application n'a pas pu démarrer car elle n'a pas pu trouver ou charger le plugin de plateforme Qt "xcb".

Réinstaller l'application peut résoudre ce problème.

Avorté

Mais si j'essaie avec le système python, c'est-à-dire /usr/bin/python test.py, cela fonctionne correctement.

J'ai ensuite essayé les ipythons, du système et de l'anaconda, le résultat est le même qu'avant: le noyau anaconda ipython est mort.

Et j'ai essayé d'ajouter la magie ipython %matplotlib inline dans le code, l'anaconda ipython fonctionne correctement maintenant. Mais si je remplace le %matplotlib inline avec %pylab, l'anaconda ipython est mort à nouveau.

Remarque: j'utilise le python 2.7. La version du système ipython est 2.3, la version anaconda ipython est 3.2.

21
Yantao Xie

Même problème avec Linux Mint 17, 64 bits. Il a été résolu après 4h de recherche sur le net! Vous devez donner ces commandes sur le terminal depuis le dossier/anaconda2/bin

Sudo ./conda remove qt
Sudo ./conda remove pyqt
Sudo ./conda install qt
Sudo ./conda install pyqt

J'espère que cela aide!

21
anto150192

J'ai rencontré ce problème sur Ubuntu 16.04 avec anaconda 4.3.17 (Python 2.7). Le problème provient du fait qu'anaconda a installé Qt version 5.6, alors que mes bibliothèques système Qt étaient à la version 5.5.

n hack rapide consiste à s'assurer que les bibliothèques Anaconda précèdent vos bibliothèques système en définissant LD_LIBRARY_PATH:

export LD_LIBRARY_PATH=$HOME/anaconda2/lib:$LD_LIBRARY_PATH

Malheureusement, cela cassera d'autres programmes qui utilisent Qt 5.5, vous ne pouvez donc l'utiliser que dans des situations qui sont 100% python anaconda, par exemple, si vous démarrez une session ipython avec --pylab.

J'ai découvert que c'était le problème en regardant la façon dont libxqcb.so était lié:

ldd $HOME/anaconda2/plugins/platforms/libqxcb.so

qui a signalé les erreurs suivantes:

./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)

Les messages d'erreur indiquent qu'ils ne peuvent pas trouver Qt_5.6, qui est la version d'Anaconda. La version sur mon système était 5.5, que j'ai découvert en regardant les noms de fichiers résultant de cette commande:

ls /usr/lib/x86_64-linux-gnu/libQt*
7
goats

Pour résoudre ce problème, j'ai ajouté en haut:

import matplotlib
matplotlib.use('Agg')

J'ai un CentOS7, Anaconda3-4.5.0, python3.5 pyqt version 5.6.0 et qt version 5.6.0

4
Scott Young