编译ROS支持python3

这里面分两种情况,一种是把ROS整个环境用python3编译,另外一种是仅把不分包用python3编译。

ROS整个包用python3编译

这部分由于github不稳定,需要下载的源码过多,可能会等待时间比较长,失败可能性大。方法参考:https://blog.csdn.net/bluewhalerobot/article/details/80952776

部分包用python3编译

使用下述命令编译自己工作空间的代码,

catkin_make -DPYTHON_EXECUTABLE=/usr/bin/python3

这里以cv_bridge为例这里遇到了一个问题:

没有找到libboost-python3

因此需要再编译,libboost-python3,

1)首先确认现在boost的版本,比如我的电脑是Ubuntu18.04,ROS为melodic版本,系统默认boost版本为1.65.1,因此下载源码,地址boost

2)配置电脑python环境,sudo rm /usr/bin/python; 在执行,sudo ln -s /usr/bin/python3.6 /usr/bin/python;这么做的目的是将系统python默认环境切换到python3,否则编译boost仍然找到的python2

3)按照下述命令编译安装

sudo ./bootstrap.sh --with-libraries=python --with-toolset=gcc

sudo ./b2 cflags='-fPIC' cxxflags='-fPIC' --with-python include="/usr/include/python3.6m/"

sudo ./b2 install

4)最后在此运行catkin_make -DPYTHON_EXECUTABLE=/usr/bin/python3,即可通过,现在即支持python3了。

5)切换python3环境后,一旦遇到某个ROS包启动错误,则下载源代码重新用4)编译

Python函数中变量使用注意事项

函数是一个回调或者循环;

内部有个小循环;

小循环外有个变量,每次调用有修改值,小循环内部使用;

这时需要在小循环内copy一份,否则极易因为外部调用函数导致变量改变而报错。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值