#python #qt #ros
#python #qt #ros
Вопрос:
Я пытаюсь использовать rqt_plot
функцию ROS, и каждый раз, когда я вызываю 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 kinetic и ubuntu 16.04 LTS.
Ответ №1:
Возможно, у вас установлен Qt4, для верности проверьте, открыв python из командной строки и запустив:
from PyQt4.QtCore import QT_VERSION_STR
print(QT_VERSION_STR)
Аналогичным образом вы можете проверить наличие Qt5, заменив 4 на 5. Однако сначала вам нужно будет выйти и перезапустить python.
Комментарии:
1. Итак, очевидно, что у меня установлен QT4.8.7 без ведома pip. Как бы мне его удалить? Или я должен удалить qt5 вместо этого?
2. Можете ли вы поделиться своим PYTHONPATH, вы можете проверить это, выполнив
echo $PYTHONPATH
3. /home/morten/catkin_ws/devel/lib/python2.7/dist-packages:/opt/ros/kinetic/lib/python2.7/dist-packages
4. Можете ли вы попытаться просто сохранить пакет ROS в PYTHONPATH, запустив
export PYTHONPATH=/opt/ros/kinetic/lib/python2.7/dist-packages
это может указать нам, есть ли конфликт с чем-то в вашем catkin_ws.5. После выполнения
export
команды, за которой следуетrqt_plot
, я снова получаю ту же ошибку версии QT