Ros melodic python3环境解决cv_bridge问题
巨坑,翻遍所有csdn,找了许多方法,搞了好久终于解决了,现在记录一下。
博主版本:ubuntu18.04+Ros melodic+python3.6.9
问题描述
代码报错最后两行:
from cv_bridge.boost.cv_bridge_boost import getCvType
ImportError: dynamic module does not define module export function (PyInit_cv_bridge_boost)
网上很多教程都说ros+python3不行,是要建立虚拟空间。我尝试过虚拟空间但一样会报错,这里找到了一个方法并不需要建立虚拟空间。
解决方案
一、编译cv_bridge包与使用依赖cv_bridge包:
1、首先进入python3的环境并安装相关依赖包
sudo apt-get install python-catkin-tools python3-dev python3-catkin-pkg-modules python3-numpy python3-yaml ros-melodic-cv-bridge
2、创建一个工作空间用于存放待编译的 cv_bridge 文件
mkdir -p catkin_workspace/src
3、指示carkin设置cmake变量
cd catkin_workspace
catkin config -DPYTHON_EXECUTABLE=/usr/bin/python3 -DPYTHON_INCLUDE_DIR=/usr/include/python3.6m -DPYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.6m.so
4、指示catkin将内置包安装到安装位置,这一步不成功也没关系,可不用。
catkin config --install
5、在catkin_workspace工作空间中克隆 cv_bridge src
git clone https://github.com/ros-perception/vision_opencv.git src/vision_opencv
6、在存储库中查找cv_bridge的版本
apt-cache show ros-melodic-cv-bridge