Ubuntu 20.4中无法打开rqt_graph的问题求助
问题:Ubuntu 20.04 + ROS Noetic运行
rqt_graph时提示libQt5Core.so.5找不到 运行rqt_graph时出现如下错误:
Traceback (most recent call last): File "/opt/ros/noetic/bin/rqt_graph", line 8, in <module> sys.exit(main.main(sys.argv, standalone='rqt_graph.ros_graph.RosGraph')) File "/opt/ros/noetic/lib/python3/dist-packages/rqt_gui/main.py", line 61, in main return super( File "/opt/ros/noetic/lib/python3/dist-packages/qt_gui/main.py", line 407, in main from python_qt_binding import QT_BINDING File "/opt/ros/noetic/lib/python3/dist-packages/python_qt_binding/__init__.py", line 55, in <module> from .binding_helper import loadUi, QT_BINDING, QT_BINDING_MODULES, QT_BINDING_VERSION # @UnusedImport File "/opt/ros/noetic/lib/python3/dist-packages/python_qt_binding/binding_helper.py", line 274, in <module> _select_qt_binding( File "/opt/ros/noetic/lib/python3/dist-packages/python_qt_binding/binding_helper.py", line 118, in _select_qt_binding raise ImportError( ImportError: Could not find Qt binding (looked for: 'pyqt', 'pyside'): ImportError for 'pyqt': libQt5Core.so.5: cannot open shared object file: No such file or directory Traceback (most recent call last): File "/opt/ros/noetic/lib/python3/dist-packages/python_qt_binding/binding_helper.py", line 108, in _select_qt_binding QT_BINDING_VERSION = binding_loader(required_modules, optional_modules) File "/opt/ros/noetic/lib/python3/dist-packages/python_qt_binding/binding_helper.py", line 153, in _load_pyqt _named_import('PyQt5.%s' % module_name) File "/opt/ros/noetic/lib/python3/dist-packages/python_qt_binding/binding_helper.py", line 133, in _named_import module = builtins.__import__(name) ImportError: libQt5Core.so.5: cannot open shared object file: No such file or directory ImportError for 'pyside': libQt5Core.so.5: cannot open shared object file: No such file or directory Traceback (most recent call last): File "/opt/ros/noetic/lib/python3/dist-packages/python_qt_binding/binding_helper.py", line 108, in _select_qt_binding QT_BINDING_VERSION = binding_loader(required_modules, optional_modules) File "/opt/ros/noetic/lib/python3/dist-packages/python_qt_binding/binding_helper.py", line 185, in _load_pyside _named_import('PySide2.%s' % module_name) File "/opt/ros/noetic/lib/python3/dist-packages/python_qt_binding/binding_helper.py", line 133, in _named_import module = builtins.__import__(name) ImportError: libQt5Core.so.5: cannot open shared object file: No such file or directory
已尝试的无效操作
- 重装libqt5相关系统包
- 执行
sudo strip修复库的方案,执行后出现新的Qt库相关错误
解决方案建议
1. 定位并修复Qt5库路径
首先查找libQt5Core.so.5的安装位置:
sudo find / -name libQt5Core.so.5 2>/dev/null
- 如果找到路径(比如
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5),临时将其添加到系统库路径:
想要永久生效,将上述命令添加到export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH~/.bashrc文件末尾,然后执行source ~/.bashrc。 - 如果未找到该文件,安装完整的Qt5基础库:
sudo apt install qtbase5-dev qt5-default
2. 修复ROS Qt绑定依赖
重新安装ROS相关的Qt绑定包:
sudo apt install --reinstall ros-noetic-python-qt-binding ros-noetic-rqt-gui ros-noetic-rqt-gui-py
同时修复系统中可能损坏的包:
sudo apt --fix-broken install sudo apt update && sudo apt upgrade
3. 修复strip导致的库损坏
由于sudo strip可能破坏了Qt库的符号表,重新安装对应的Qt库包:
先查找libQt5Core.so.5所属的系统包:
dpkg -S libQt5Core.so.5
通常该文件属于libqt5core5a,执行重装:
sudo apt install --reinstall libqt5core5a
4. 验证Python Qt绑定
分别测试PyQt5和PySide2是否能正常导入:
- 测试PyQt5:
若报错,重装PyQt5:python3 -c "import PyQt5.QtCore"sudo apt install python3-pyqt5 - 测试PySide2:
若报错,安装对应的包:python3 -c "import PySide2.QtCore"sudo apt install python3-pyside2.qtcore
5. 确认ROS环境变量
确保每次启动终端都已加载ROS环境变量:
source /opt/ros/noetic/setup.bash
想要永久生效,将该命令添加到~/.bashrc文件末尾。
内容的提问来源于stack exchange,提问作者Niescte
相关产品推荐
相关产品推荐

