采用conda环境和ros环境关于rqt_gui冲突出现“段错误(核心已转储)”的问题

在使用conda和ros共存的ubuntu系统时,我采用的是base环境是conda python3,单独建立了一个rospy2的环境

在rospy2中使用rqt_gui时会出现:

 

段错误(核心已转储)

 

因此决定在base环境中使用rqt的各种插件

但是会遇到如下问题:

rosrun rqt_gui eqt_gui

出现:

Could not import "pyqt" bindings of qt_gui_cpp library - so C++ plugins will not be available: Traceback (most recent call last): File "/opt/ros/kinetic/lib/python3.7/dist-packages/qt_gui_cpp/cpp_binding_helper.py", line 43, in <module> from . import libqt_gui_cpp_sip ImportError: dynamic module does not define module export function (PyInit_libqt_gui_cpp_sip)

这个错误。因此搜刮了网上各种教程:

其中写的最好的是:

ROS - 汇总ROS与Anaconda冲突的解决办法

https://blog.****.net/bornfree5511/article/details/106166465?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase

在最初配置的时候非常推荐。

但是其中的第一个方法初始化时选no已经错过了,于是只能用其余方式补救:

法三:每次显式的启用anaconda

我们把export PATH="/home/$USER/anaconda3/bin:$PATH"

这句注释掉。每次使用anaconda的时候,手动在terminal中再输入这句话。

但是依然会出现这个问题。

于是我找到了一种比较硬核的解决方式:

https://answers.ros.org/question/247389/rqt_graph-error-could-not-import-pyqt-bindings-of-qt_gui_cpp-library-so-c-plugins-will-not-be-available/

问题解决的方法:use " conda install pydot"

但是这个是装在base中的,于是我在之前注释掉conda配置之后使用了如下两步解决了这个问题:

1.打开anaconda navigator:采用conda环境和ros环境关于rqt_gui冲突出现“段错误(核心已转储)”的问题进入

采用conda环境和ros环境关于rqt_gui冲突出现“段错误(核心已转储)”的问题

配置ros的环境

2.搜索 pydot并安装:

采用conda环境和ros环境关于rqt_gui冲突出现“段错误(核心已转储)”的问题

之后进入终端使用source ~/.bashrc

出现界面没有(base)了:

采用conda环境和ros环境关于rqt_gui冲突出现“段错误(核心已转储)”的问题

键入rosrun rqt_gui rqt_gui

问题解决:

采用conda环境和ros环境关于rqt_gui冲突出现“段错误(核心已转储)”的问题

此时没有在rospy2环境中使用rqt,也就不存在段错误的情况了。

其余解决方案:

ROS与Anaconda的冲突解决

https://blog.****.net/qq_34689206/article/details/84960962

ROS使用过程中出现的问题:由于Anaconda的Python路径问题造成rqt_graph报错

https://blog.****.net/sinat_36330809/article/details/83992645

 

conda - conda使用总结

https://blog.****.net/bornfree5511/article/details/106723571