我使用 python3,我正在尝试从 PyQt4 迁移到 PyQt5。我有以下代码:
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
class MyMonitor(QWidget, mon_ui.Ui_monitor):
def __init__(self, workdir, refresh, parent = None):
QWidget.__init__(self, parent)
self.setupUi(self)
self.setupMembers(workdir, refresh)
# More code ...
# more methods
if __name__ == "__main__":
opts = monGetOpts()
sys.excepthook = monExceptionsHandler
signal(SIGINT, monSignalsHandler)
app = QApplication(sys.argv)
style = QStyleFactory.create('windows')
app.setStyle(style)
MyMonitor = MyMonitor(opts['workdir'], opts['refresh'])
MyMonitor.show()
app.exec_()
出于某种原因,它在到达线路时失败
self.setupUi(self)
:
python3.6.3: relocation error: /usr/pkgs/python3/3.6.3/modules/r1/lib/python3.6/site-packages/PyQt5/Qt/plugins/platforms/../../lib/libQt5DBus.so.5: symbol dbus_message_get_allow_interactive_authorization, version LIBDBUS_1_3 not defined in file libdbus-1.so.3 with link time reference
我尝试用谷歌搜索此错误消息并找到了一些票证,但他们没有具体说明他们是如何解决的。有人看过吗?如何解决?如何调试?
我在 SLES12 上遇到了这个问题。一旦我使用 python 3.7 并将包版本限制为 pyqt5<5.12, it worked for me.