You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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:
    python3 -c "import PyQt5.QtCore"
    
    若报错,重装PyQt5:
    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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 14:50:38