学会発表が終わり、今年度の学会発表4回が全て終わりました!昨年の自分がこの事実を聞いたらどんな顔をするのでしょうか…?昨年は学会発表について一切知らなかったし、頭になかったので、「はぁぁ?」となりそうな気がします。
来年度はどんな1年になるのか、正直わくわくびくびくしております。自分が想定している範囲内では事業起こしが十分に現実味を帯びているので、来年も暇な1年にはならないと思っています。(残念…)
本題
結構前からROS2のrqt_graphで以下のようなエラーメッセージが出ていました。
詳細
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/dashing/lib/python3.6/site-packages/rqt_gui/ros_plugin_provider.py", line 81, in load attributes['module_name'], fromlist=[attributes['class_from_class_type']], level=0) File "/opt/ros/dashing/lib/python3.6/site-packages/qt_gui_cpp/cpp_plugin_provider.py", line 33, in <module> from .cpp_binding_helper import qt_gui_cpp File "/opt/ros/dashing/lib/python3.6/site-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/dashing/lib/python3.6/site-packages/qt_gui/recursive_plugin_provider.py", line 60, in discover instance = self._plugin_provider.load(plugin_descriptor.plugin_id(), None) File "/opt/ros/dashing/lib/python3.6/site-packages/rqt_gui/ros_plugin_provider.py", line 91, in load raise e File "/opt/ros/dashing/lib/python3.6/site-packages/rqt_gui/ros_plugin_provider.py", line 81, in load attributes['module_name'], fromlist=[attributes['class_from_class_type']], level=0) File "/opt/ros/dashing/lib/python3.6/site-packages/qt_gui_cpp/cpp_plugin_provider.py", line 33, in <module> from .cpp_binding_helper import qt_gui_cpp File "/opt/ros/dashing/lib/python3.6/site-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
これまでは「まー、GUIで見るほどでもないしいいか」と諦めていたのですが、ネームスペースを多用する機会が多くなりさすがに看過できなくなったので、解決することにしました。
Stack Overflowなどでは、似たエラーに対して「PyQt5をダウングレードするといいよ」などのアドバイスがありました。rqt_graphにバージョンの違いがあるのか…?
なんやかんや調べたら、解決策がありました。原因は、python3-pyqt5とpip3でのPyQt5がどちらもインストールされていてそのバージョンの差があるからとのことでした。
というわけで、pip3版Qt5をアンインストールしました。$ pip3 uninstall PyQt5
Pythonはaptで入るパッケージとpipで入るパッケージとconda等で入るパッケージがあるので管理が面倒ですねー😇