首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ros中的Qt5错误:使用不正确的名称调用的PyCapsule_GetPointer

ros中的Qt5错误:使用不正确的名称调用的PyCapsule_GetPointer
EN

Stack Overflow用户
提问于 2022-03-31 12:16:45
回答 1查看 613关注 0票数 1

我有一个Ubuntu20.04.4,安装了ros。

当我试图运行rqt时,会出现以下错误:

代码语言:javascript
运行
复制
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

我试着卸载并重新安装ros/qt,但是它没有工作。

我的PyQt5 5.14.1和PyQt5-Si12.9.1安装了pip,pyqt5-dev 5.14.1安装了apt。如果卸载python包,rqt依赖于PySide2 ( 5.15.2.1版已安装),但我有一个分段错误:

代码语言:javascript
运行
复制
QtBindingHelper using pyside
PluginManager._discover() force discovery of plugins
RospkgPluginProvider._find_plugins() crawling for plugins of type 'qt_gui'
[1]    148476 segmentation fault (core dumped)  rqt
EN

回答 1

Stack Overflow用户

发布于 2022-07-24 09:51:52

我遇到了同样的问题,我通过修改我的PYTHONPATH来修正它。我觉得我不应该这么做,而且还有别的东西在搅乱PYTHONPATH,但是嘿,它很有效。

就我而言,我有:

代码语言:javascript
运行
复制
root@pc:~# echo $PYTHONPATH
/opt/ros/noetic/lib/python3/dist-packages:

添加/opt/ros/noetic/lib/python3 3/dist-packages(找到下一步的路径):

代码语言:javascript
运行
复制
root@pc:~# export PYTHONPATH=$PYTHONPATH:/opt/ros/noetic/lib/python3/dist-packages
root@pc:~# echo $PYTHONPATH
/opt/ros/noetic/lib/python3/dist-packages:/usr/lib/python3/dist-packages

我可以用rqt工具。

我查看了我的PySide2和PyQt5的安装位置:

代码语言:javascript
运行
复制
root@pc:~# find /usr -name PySide2
/usr/include/PySide2
/usr/lib/python3/dist-packages/PySide2
/usr/share/PySide2
root@pc:~# find /usr -name PyQt5
/usr/lib/python3/dist-packages/PyQt5
/usr/share/sip/PyQt5

并验证了我的软件包是由apt安装的,其中只有:

代码语言:javascript
运行
复制
root@pc:~# dpkg -l | grep pyqt5
ii  pyqt5-dev                                   5.14.1+dfsg-3build1               all          Development files for PyQt5
ii  python3-pyqt5                               5.14.1+dfsg-3build1               amd64        Python 3 bindings for Qt5
ii  python3-pyqt5.qtsvg                         5.14.1+dfsg-3build1               amd64        Python 3 bindings for Qt5's SVG module
root@pc:~# dpkg -l | grep pyside
ii  libpyside2-dev                              5.14.0-1~exp1ubuntu5              amd64        Python bindings for Qt5 (development files)
ii  libpyside2-py3-5.14                         5.14.0-1~exp1ubuntu5              amd64        Python 3 bindings for Qt5 (base files)
ii  python3-pyside2.qtcore                      5.14.0-1~exp1ubuntu5              amd64        Python bindings for Qt5 core module (Python 3)
ii  python3-pyside2.qtgui                       5.14.0-1~exp1ubuntu5              amd64        Python bindings for Qt5 Gui module (Python 3)
ii  python3-pyside2.qtsvg                       5.14.0-1~exp1ubuntu5              amd64        Python bindings for Qt5 Svg module (Python 3)
ii  python3-pyside2.qtwidgets                   5.14.0-1~exp1ubuntu5              amd64        Python bindings for Qt5 Widgets module (Python 3)

pip3显示没有安装任何软件包:

代码语言:javascript
运行
复制
pip3 freeze | grep -i pyside

我在安装/卸载pip3包时也遇到了这个错误(为了方便google获得这里):

代码语言:javascript
运行
复制
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)
ModuleNotFoundError: No module named 'PySide2'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71692323

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档