我刚刚在OpenSUSE上使用python 3.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 name
我可以导入PyQt5,但是我不能使用它下面的模块
>>> import PyQt5
>>> PyQt5.QtCore
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: module 'PyQt5' has no attribute 'QtCore'
我已经读过here,原因可能是系统上的另一个问题,例如安装PyQt4,我试图从程序包管理器中卸载PyQt4,但这没有帮助。
我不知道该怎么办,有什么想法吗?
如果我安装python3-qt5软件包并使用系统python可以正常工作
编辑:
我在OpenSUSE Leap 15的另一台计算机上遇到PyQt4相同的问题,解决方案是使用以下命令配置sip:
python configure.py --sip-module PyQt4.sip --no-dist-info --no-tools
中所述
答案 0 :(得分:2)
好,因此实际上非常容易,如文档(PyQt4,PyQt5)所述,必须使用--sip-module
选项配置SIP,因此对于PyQt5,我这样做了: / p>
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
答案 1 :(得分:0)
您的应用程序是否同时导入PyQt4和5?
我在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
答案 2 :(得分:0)
我将PyQt5降级为5.7.1,对我有用。
答案 3 :(得分:0)
所以对我来说,当我尝试使用 pyuic5 时,会发生此错误。
就我而言,我只需要激活我的virtual_environment,然后它就可以工作了。
答案 4 :(得分:0)
为了后代,我在PyQt5应用程序中出现此错误已有一段时间,因为我使用的是两个自定义库(libArcus和libSavitar),它们也使用SIP来编译Python绑定。最终通过确保在PyQt5之前先导入我的自定义库(使用新的SIP版本)来解决此问题:
这有效。但是,当通过PyCharm的调试器运行应用程序时,我仍然遇到相同的错误。今天,我发现PyCharm可以选择使用某些PyQt5版本“启用PyQt5兼容性”。在设置->调试器-> PyQt兼容下禁用此选项即可解决此问题。