I've just built PyQt5 in a pyenv virtualenv with python 3.6.3 on OpenSUSE leap, the build went fine, but when I import
>>> from PyQt5 import QtCore
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: PyCapsule_GetPointer called with incorrect name
I can import PyQt5, but then I cannot use the modules under it
>>> import PyQt5
>>> PyQt5.QtCore
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: module 'PyQt5' has no attribute 'QtCore'
I've read here that the cause could be another sip on the system for example of a PyQt4 installation, I tried to uninstall PyQt4 from the package manager but it didn't help.
I have no idea what to do, any ideas?
If I install the python3-qt5 package and use the system python it works
Edit:
I had the same problem with PyQt4 on another machine on OpenSUSE Leap 15, the solution was to configure sip with:
python configure.py --sip-module PyQt4.sip --no-dist-info --no-tools
as stated in the PyQt4 doc
OK so this was pretty easy actually, as stated in the doc (PyQt4, PyQt5), SIP must be configured with the --sip-module
option, so for PyQt5 I did:
python configure.py --sip-module PyQt5.sip --no-tools
and for PyQt4:
python configure.py --sip-module PyQt4.sip --no-tools
This applies for PyQt >= 4.12.2 and PyQt >= 5.11
EDIT: PyQt5 now has the so called PyQt-builder, see the PyQt5 doc
For posterity, I had this error for quite a while in my PyQt5 application because I was using two custom libraries (libArcus and libSavitar) that also use SIP to compile Python bindings. This was eventually fixed by making sure that my custom libraries (using a newer SIP version) were imported first, before PyQt5:
https://github.com/Ultimaker/Cura/blob/b20a349b4454d08e34b3c3ea3f537a380e4c7696/cura_app.py#L140-L141
This worked. However when running the application through PyCharm's debugger I still got the same error. Today I figured out that PyCharm has an option to "enable PyQt5 compatibility" with a certain PyQt5 version. Disabling this option under Settings -> Debugger -> PyQt compatible fixed this.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With