首页 > 解决方案 > rqt_plot:PyQt4 和 PyQt5 包装相同的对象类

问题描述

我正在尝试使用rqt_plotROS 的功能,每次打电话rqt_plot我都会得到:

Traceback (most recent call last):
  File "/opt/ros/kinetic/bin/rqt_plot", line 6, in <module>
    from rqt_plot.plot import Plot
  File "/opt/ros/kinetic/lib/python2.7/dist-packages/rqt_plot/plot.py", line 43, in <module>
    from .data_plot import DataPlot
  File "/opt/ros/kinetic/lib/python2.7/dist-packages/rqt_plot/data_plot/__init__.py", line 44, in <module>
    from .pyqtgraph_data_plot import PyQtGraphDataPlot
  File "/opt/ros/kinetic/lib/python2.7/dist-packages/rqt_plot/data_plot/pyqtgraph_data_plot.py", line 46, in <module>
    from pyqtgraph import __version__ as pyqtgraph_version
  File "/usr/lib/python2.7/dist-packages/pyqtgraph/__init__.py", line 13, in <module>
    from .Qt import QtGui
  File "/usr/lib/python2.7/dist-packages/pyqtgraph/Qt.py", line 104, in <module>
    from PyQt4 import QtGui, QtCore, uic
RuntimeError: the PyQt4.QtCore and PyQt5.QtCore modules both wrap the QObject class

我见过其他人通过卸载 Qt4 并仅使用 Qt5 来解决此问题,但我不完全确定为什么我会出现这个问题,因为我不相信我什至安装了 qt4。

调用pip3 uninstall pyqt4返回:

Cannot uninstall requirement pyqt4, not installed

我该如何强制rqt_plot使用 qt5 或者我应该怎么做?

这是 ROS 动力学和 ubuntu 16.04 LTS。

标签: pythonqtros

解决方案


您可能已经安装了 Qt4,以确保通过从命令行打开 python 并运行来检查:

from PyQt4.QtCore import QT_VERSION_STR
print(QT_VERSION_STR)

同样,您可以通过将 4 替换为 5 来检查 Qt5。但是,您需要先退出并重新启动 python。


推荐阅读