[英]How to force PyQt5 use for QObject class?
我正在使用Python 3和PyQt5开发一个小型图形应用程序。 在我使用的第一台计算机上,只安装了PyQt5,我的代码中的所有内容都很好。 但是当我想在我的其他笔记本电脑上运行我的代码时,安装了PyQt4和PyQt5,我收到以下错误:
RuntimeError: the PyQt5.QtCore and PyQt4.QtCore modules both wrap the QObject class
Python解释器将错误定位在从主文件调用的文件“ViewWindow.py”中。
因为我在这台笔记本电脑上都有PyQt4和PyQt5,而且因为我无法卸载PyQt4(这太容易了......),我想知道是否有可能强制使用PyQt5.QtCore或其他东西来避免这个问题。 我在这台笔记本电脑上的配置:Debian 8,Python3.4,PyQt4和5(没有特殊配置,从Debian repos安装),IDE = Spyder。
我把我的文件main.py
和ViewWindow.py
放在第一行。
# main.py
import sys
import sqlite3
import ViewWindow
from DataWindow import DataWindow
from PyQt5.QtCore import QObject # I tried adding this line, but nothing changed...
from PyQt5.QtWidgets import (QApplication,
QWidget,
QGridLayout,
QHBoxLayout,
QLabel,
QLineEdit,
QPushButton,
QTextEdit,
QVBoxLayout
)
class MainWindow(QWidget):
# Some cool stuff
# ViewWindow.py
import sys
import sqlite3
from PyQt5.QtCore import QObject # same thing than above, adding this line doesn't change the output.
from PyQt5.QtWidgets import (QApplication,
QWidget,
QGridLayout,
QLabel,
QPushButton,
QVBoxLayout
)
class ViewWindow(QWidget):
有人知道如何运行此代码吗?
谢谢,
杰瑞M.
编辑:我试图运行该脚本强制使用Python3,它工作...似乎问题来自iPython3。 谢谢你的帮助。
带有消息的RuntimeError
PyQt5.QtCore
和PyQt4.QtCore
模块都包装了QObject
类
当你尝试导入PyQt5.QtCore
而PyQt4.QtCore
之前已经导入时,它PyQt4.QtCore
被PyQt4.QtCore
。
在SIP中引发此错误,该错误用于连接到Qt。 就像它声明的那样,只允许一个模块声称要包装QObject
。 因此,错误告诉您,您正在使用PyQt4和PyQt5。
所以你需要找到加载PyQt4的模块来配置它来使用PyQt5。 或者你可以尝试在任何其他导入之前from PyQt5.QtCore import QObject
,并希望通常从PyQt4导入的模块是可适应的并且能够使用PyQt5作为后备。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.