web-dev-qa-db-fra.com

Module PyQt5 et QtGui non trouvé

Y a-t-il une raison pour que QtGui soit emballé avec PyQt5 ???

J'utilise le livre de programmation rapide de Mark Summerfield. Évidemment, ce livre a été écrit avec Qt4 à l'esprit, mais il m'a été recommandé d'utiliser Qt5 et PyQt5. Je souhaite exécuter le premier exemple de code du chapitre 4. Le code commence par les instructions d'importation suivantes:

import sys
import time
from PyQt5.QtCore import *
from PyQt5.QtGui import *

A quoi le compilateur répond:

Traceback (most recent call last):
  File "wakeUp.py", line 4, in <module>
    from PyQt5.QtGui import *
ImportError: No module named 'PyQt5.QtGui'

Notez que l'instruction d'importation PyQt5.QtCore ne génère pas d'erreur. 

Du terminal,

$ echo $PYTHONPATH
:/usr/lib/python3.3/site-packages

Quelqu'un d'autre a-t-il rencontré cette erreur d'importation pour QtGui?

D'une session interactive, je peux

>>> import PyQt5.Qt
>>> import PyQt5.QtDBus
>>> import PyQt5.QtNetwork
>>> import PyQt5.QtXmlPatterns

Mais je n'ai pas QtWidgets, QtGui, QtWebkit, QtDesigner et plusieurs autres.

De plus, s’il est utile, le contenu de /usr/lib/python3.3/site-packages/PyQt5 est:

__init__.py  QtCore.so  QtDBus.so  QtNetwork.so  Qt.so  QtXmlPatterns.so  uic

qui sont les mêmes modules que je peux importer. Les autres modules (QtWidgets, QtGui, etc.) devraient-ils être ici aussi?

J'utilise Ubuntu 13.04 et Python 3.3. 

8
ADB

Le problème était lorsque j'exécutais le script de configuration PyQt5. L'option correcte pour passer allait comme ceci:

> python3 configure.py --qmake [path to Qt5.x]/bin/qmake

Je fournissais le chemin jusqu'à bin, mais je n'ai pas spécifiquement indiqué qmake. Allez comprendre!

Après avoir exécuté le script de configuration de cette manière, j'ai pu importer tous les modules PyQt5.

3
ADB

Lors de la première utilisation de pyqt4 et pyqt5 et du pycharm IDE, les importations ont posé de nombreux problèmes. (Bien que les importations n’aient aucune probabilité d’être exécutées à partir d’IDLE) Finalement, après beaucoup de travail, de désinstallation et de réinstallation (y compris les dépendances), les importations se sont triées d’elles-mêmes.

Avez-vous installé pyqt5 à l’aide d’un programme d’installation disponible sur le site Web pyqt? Vous devez . Qt designer se trouve dans le menu Démarrer de Windows . Lorsque j'ai suivi les didacticiels PyQt4, j’ai eu de la chance en utilisant les instructions d’importation suivantes pour PyQt5 ...

from PyQt4 import QtCore, QtGui #in the pyqt4 tutorials
from PyQt5 import QtCore, QtGui, QtWidgets #works for pyqt5

Je le connais moi-même, mais dans pyqt4, QtWidget faisait partie de QtGui (QtGui.QtWidget), dans pyqt5, il est importé par lui-même en tant que QtWidgets. Ce n'est qu'un petit changement de code pour que les didacticiels pyqt4 fonctionnent dans pyqt5.

Personnellement, je suis retourné à pYqt4 pour tirer parti de pyqtgraph.

Regardez mon article pyqt4 ici qui vous explique comment utiliser Qt Designer.

5
Ninga

Configurez pyqt avec cette commande:

python[3] configure.py --qmake=[path to Qt5.x]/bin/qmake --verbose

Qu'un module qt soit construit ou non dépend de la vérification de configure.py . Regardez la sortie du terminal et vous trouverez la raison pour laquelle QtGui..QtWidgets n'a pas été installé correctement.

3
kentop

même problème, python run py ok, mais dans tout IDE: code Visual Studio/PyCharm. Il affichera une erreur de syntaxe.

Enfin, je l'ai résolu en définissant la variable env PYTHONPATH dans le chemin de packages-site python, Ex.

PYTHONPATH=D:\Anaconda3\Lib\site-packages
0
raidsan