web-dev-qa-db-fra.com

Erreur PyQt5 "PyCapsule_GetPointer appelé avec un nom incorrect"

Je viens de construire PyQt5 dans un environnement virtuel avec Python 3.6.3 sur OpenSUSE, la construction s’est bien déroulée, mais lors de l’importation

>>> from PyQt5 import QtCore
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: PyCapsule_GetPointer called with incorrect name

Je peux importer PyQt5, mais je ne peux pas utiliser les modules qu'il contient.

>>> import PyQt5
>>> PyQt5.QtCore
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: module 'PyQt5' has no attribute 'QtCore'

J'ai lu ici que la cause pourrait être une autre gorgée sur le système, par exemple une installation de PyQt4, j'ai essayé de désinstaller PyQt4 du gestionnaire de paquets, mais cela n'a pas aidé.

Je ne sais pas quoi faire, des idées?

Si j'installe le paquet python3-qt5 et utilise le système python, cela fonctionne

Modifier:

J'ai eu le même problème avec PyQt4 sur une autre machine sous OpenSUSE Leap 15, la solution consistait à configurer sip avec:

python configure.py --sip-module PyQt4.sip --no-dist-info --no-tools

comme indiqué dans le PyQt4 doc

4
Pedru

OK, donc c'était assez facile, comme indiqué dans la doc ( PyQt4 , PyQt5 ), SIP doit être configuré avec l'option --sip-module, donc pour PyQt5, j'ai:

python configure.py --sip-module PyQt5.sip --no-tools

et pour PyQt4:

python configure.py --sip-module PyQt4.sip --no-tools

Ceci s'applique à PyQt> = 4.12.2 et PyQt> = 5.11.

2
Pedru

Votre application importe-t-elle à la fois PyQt4 et 5?

J'ai vu la première erreur sur Windows avec ceci:

Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:59:51) [MSC v.1914 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
Executable: D:\Python37\python.exe
>>> from PyQt5 import QtWidgets
>>> from PyQt4 import QtGui, QtCore
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: PyCapsule_GetPointer called with incorrect name
0
NateTheGrate