Linux PyQt5错误“;PyCapsule“调用的GetPointer名称不正确”;
我刚刚在OpenSUSE leap上使用Python3.6.3在pyenv virtualenv中构建了PyQt5,构建过程很顺利,但是当我导入Linux PyQt5错误“;PyCapsule“调用的GetPointer名称不正确”;,linux,python-3.x,pyqt5,python-sip,Linux,Python 3.x,Pyqt5,Python Sip,我刚刚在OpenSUSE leap上使用Python3.6.3在pyenv virtualenv中构建了PyQt5,构建过程很顺利,但是当我导入 >>> from PyQt5 import QtCore Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: PyCapsule_GetPointer called with incorrect
>>> from PyQt5 import QtCore
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: PyCapsule_GetPointer called with incorrect name
如中所述,您的应用程序是否同时导入PyQt4和PyQT5 我看到windows上的第一个错误是:
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
win32上的Python 3.7.0(v3.7.0:1bf9cc5093,2018年6月27日,04:59:51)[MSC v.1914 64位(AMD64)]
有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。
可执行文件:D:\Python37\python.exe
>>>从PyQt5导入QtWidgets
>>>从PyQt4导入QtGui、QtCore
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
ValueError:调用PyCapsule_GetPointer时名称不正确
好的,实际上这很容易,正如文档(,)中所述,SIP必须配置有
--SIP模块
选项,因此对于PyQt5,我做了:
python configure.py --sip-module PyQt5.sip --no-tools
对于PyQt4:
python configure.py --sip-module PyQt4.sip --no-tools
这适用于PyQt>=4.12.2和PyQt>=5.11
编辑:
PyQt5现在有所谓的PyQt生成器,请参见我将PyQt5降级为5.7.1,它对我有效。因此,对于我来说,在尝试使用pyuic5时发生了此错误
在我的情况下,我只需要激活我的虚拟_环境,然后它就可以工作了 对于子孙后代,我在PyQt5应用程序中有一段时间出现了这个错误,因为我使用了两个自定义库(libArcus和libSavitar),它们也使用SIP编译Python绑定。通过确保在PyQt5之前首先导入我的自定义库(使用较新的SIP版本),最终解决了这一问题:
这起作用了。然而,当通过PyCharm的调试器运行应用程序时,我仍然得到相同的错误。今天,我发现PyCharm有一个选项,可以“启用PyQt5与特定PyQt5版本的兼容性”。在“设置->调试器->PyQt兼容”下禁用此选项修复了此问题。不幸的是,情况并非如此,我面临着类似的问题。你能再解释一下你的解决方案吗?这个configure.py文件是什么?调用
configure.py
是的一部分,仅当您自己构建PyQt时才适用。我有同样的问题,但建议的配置会引发以下错误:python:无法打开文件'configure.py':[Errno 2]没有这样的文件或目录
。基于对最后一部分的建议,我尝试使用pip install更新pip setuptools——升级setuptools
,但没有帮助。Hm我是通过pip3安装的:pip3 install PyQt5 sip pip3 install PyQt5->我现在可以如何配置?到PyQt5文档的链接断开我一直想知道该选项的作用,激活或停用它有时可以修复问题。
python configure.py --sip-module PyQt5.sip --no-tools
python configure.py --sip-module PyQt4.sip --no-tools