[治すことはできませんが、確実に機能します] rqt を実行すると、間違った名前で呼び出された PyCapsule_GetPointer というエラーが報告されます。

  最近、ロボットアームのハンドアイキャリブレーションを行っているときに、ubuntuのrqtコマンドが常にエラーを報告することがわかりました。 、ウィンドウが表示できません、ValueError: PyCapsule_GetPointer called with incorrect namerqt_graphなどを開くとエラーが報告されますが、ウィンドウが表示されません長い間悩んだ末、ようやく問題が解決したので記録しておきます。
私のエラーは次のとおりです。

Traceback (most recent call last):
  File "/opt/ros/noetic/bin/rqt", line 13, in <module>
    sys.exit(main.main())
  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 277, in <module>
    _select_qt_binding(
  File "/opt/ros/noetic/lib/python3/dist-packages/python_qt_binding/binding_helper.py", line 111, 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 158, in _load_pyqt
    _named_optional_import('PyQt5.%s' % module_name)
  File "/opt/ros/noetic/lib/python3/dist-packages/python_qt_binding/binding_helper.py", line 145, in _named_optional_import
    _named_import(name)
  File "/opt/ros/noetic/lib/python3/dist-packages/python_qt_binding/binding_helper.py", line 136, in _named_import
    module = builtins.__import__(name)
ValueError: PyCapsule_GetPointer called with incorrect name

  インターネットでエラーの原因を検索すると、pyqt5のバージョンの問題が多かったので、バージョンが新しすぎるか、バージョンが合っていないため、4、5バージョン再ダウンロードしましたが、うまくいきませんでした。 Baidu や Google では解決できないような気がします 問題があったので、気を引き締めてコードのデバッグを読み始めました。
  問題は最終的に/opt/ros/noetic/lib/python3/dist-packages/python_qt_binding/binding_helper.pyこのファイルを指摘しました。_load_pyqtオプションのモジュール ( ) をインポートするoptional_modulesときに関数がエラーを報告しました。インポート プロセスoptional_modulesでは、リスト内の各項目をループでインポートするため、インポート サイクルに を追加して、print(module_name)どの項目がインポートされるかを確認しました。モジュール中に何かが起こりました。最終的に、QtWebKitWidgetsモジュールをインポートするときにループが停止していることがわかりました。optional_modulesリストを確認すると、次のことがわかります。

'QtWebEngine',  # Qt 5.6 and higher
'QtWebEngineCore',
'QtWebEngineWidgets',
'QtWebKitWidgets',  # Qt 5.0 - 5.5

  コメントを見る限り、バージョンが違っても同じはずだとQtWebEngine思いますが、Qtのバージョンが比較的高いので選択肢のはずなので、該当行を削除して再度実行してみました。rqtは本当に使えます. ! ターミナルにはまだいくつかのエラーがありますが、QtWebKitWidgetsQtWebEngineQtWebKitWidgets

RosPluginProvider.load(qt_gui_cpp/CppPluginProvider) exception raised in __builtin__.__import__(qt_gui_cpp.cpp_plugin_provider, [CppPluginProvider]):
Traceback (most recent call last):
  File "/opt/ros/noetic/lib/python3/dist-packages/rqt_gui/ros_plugin_provider.py", line 79, in load
    module = __builtin__.__import__(
  File "/opt/ros/noetic/lib/python3/dist-packages/qt_gui_cpp/cpp_plugin_provider.py", line 33, in <module>
    from .cpp_binding_helper import qt_gui_cpp
  File "/opt/ros/noetic/lib/python3/dist-packages/qt_gui_cpp/cpp_binding_helper.py", line 43, in <module>
    from . import libqt_gui_cpp_sip
ValueError: PyCapsule_GetPointer called with incorrect name

RecursivePluginProvider.discover() loading plugin "qt_gui_cpp/CppPluginProvider" failed:
Traceback (most recent call last):
  File "/opt/ros/noetic/lib/python3/dist-packages/qt_gui/recursive_plugin_provider.py", line 60, in discover
    instance = self._plugin_provider.load(plugin_descriptor.plugin_id(), None)
  File "/opt/ros/noetic/lib/python3/dist-packages/rqt_gui/ros_plugin_provider.py", line 90, in load
    raise e
  File "/opt/ros/noetic/lib/python3/dist-packages/rqt_gui/ros_plugin_provider.py", line 79, in load
    module = __builtin__.__import__(
  File "/opt/ros/noetic/lib/python3/dist-packages/qt_gui_cpp/cpp_plugin_provider.py", line 33, in <module>
    from .cpp_binding_helper import qt_gui_cpp
  File "/opt/ros/noetic/lib/python3/dist-packages/qt_gui_cpp/cpp_binding_helper.py", line 43, in <module>
    from . import libqt_gui_cpp_sip
ValueError: PyCapsule_GetPointer called with incorrect name

  しかし、問題は大きくありません。使用してみました。試してみましたが、開けないようです。Qtrqt_image_view開発は行っていませんが、ROS で rqt を使用する必要があります。rviz はrqt_image_view機能を完全に置き換えることができるため、問題は大まかに解決されました。

おすすめ

転載: blog.csdn.net/astruggler/article/details/129086613