报错-cv_bridge报错: ImportError: dynamic module does not define module export function (PyInit_cv_bridge

现象

当执行xx.py ,有如下报错:

Traceback (most recent call last): File "<frozen importlib._bootstrap>", line 971, in _find_and_load File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 658, in _load_unlocked File "<frozen importlib._bootstrap>", line 571, in module_from_spec File "<frozen importlib._bootstrap_external>", line 922, in create_module File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed ImportError: dynamic module does not define module export function (PyInit_cv_bridge_boost)
.....
ImportError: dynamic module does not define module export function (PyInit_cv_bridge_boost)

原因

在ROS中默认使用python2,rospy的cv_bridge默认也是python2版本的,在使用python3中导入cv_brdige时会报出以上错误.

解决方法

需要重新编译一个用于python3版本的cv_bridge包,即可:

  1. 新建ROS工作区

mkdir cv_bridge
cd cv_bridge
catkin init

  1. 注意配置本地python环境,虚拟环境编译无效

catkin config -DPYTHON_EXECUTABLE=/usr/bin/python3 -DPYTHON_INCLUDE_DIR=/usr/include/python3.5m -DPYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.5m.so #寻找对应位置
catkin config --install

  1. 下载cv_bridge

git clone https://github.com/ros-perception/vision_opencv.git src/vision_opencv
apt-cache show ros-melodic-cv-bridge | grep Version
Version: 1.12.8-0xenial-20180416-143935-0800 #版本不一定
cd src/vision_opencv/
git checkout 1.12.8
cd …/…/

  1. Build

catkin build cv_bridge

  1. 添加环境

source install/setup.bash --extend
可放入~/.bashrc文件
source {dir}/install/setup.bash --extend

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Attention is all you

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值