rqt_plot:PyQt4和PyQt5包装相同的对象类

时间:2019-03-04 10:28:11

标签: python qt ros

我正在尝试使用ROS的rqt_plot功能,每次调用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的。

1 个答案:

答案 0 :(得分:1)

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

from PyQt4.QtCore import QT_VERSION_STR
print(QT_VERSION_STR)

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