栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

ROS Melodic中同时使用python2和python3方法

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

ROS Melodic中同时使用python2和python3方法

ROS Melodic中同时使用python2和python3方法
  • 问题引入
  • 解决方案
    • 注意事项

问题引入
  • ROS Melodic的默认环境是python2, 最新发布的ROS noetic才完全支持python3。因此对用ROS Melodic开发项目, 同时需要使用python3编写程序的使用者造成了一定的困扰。希望这篇文章可以有所帮助
  • 目标: 在对原有python2代码不造成损害的前提下,开发用python3编写额外的ROS node. 在同一个ROS workspace下保证python2和python3编写的node均可以运行并且各自功能不受影响。Python3可以自由调用scikit-learn, numpy等包
解决方案

首选需要安装ROS对python3的软件包, 如下 (保险起见全都把安装一遍):

sudo apt-get install python3-catkin-pkg-modules
sudo apt-get install python3-rospkg-modules
sudo apt-get install python3-rosdep python3-rosinstall-generator python3-wstool python3-rosinstall build-essential
sudo pip3 install catkin_pkg

回到workspace, 对整个catkin workspace进行编译,同时指明python3的解释器:

catkin_make -DPYTHON_EXECUTABLE=/usr/bin/python3

这时候可能会遇到很多报错,例如xxx cannot find the packages…, 如果出现这类错误,直接重新安装一边ROS melodic

sudo apt-get install ros-melodic-desktop-full

再次用catkin_make或者catkin_make -DPYTHON_EXECUTABLE=/usr/bin/python3编译,如果遇到错误:
No module named ’em’
不用担心,离成功不远了,执行:(必须用python3的pip)

pip3 install empy

最后,再次编译catkin_ws,即可成功

catkin_make -DPYTHON_EXECUTABLE=/usr/bin/python3

注意事项

在用python3写一个ROS node的时候,需要注意脚本的第一行需要写python3的解释器所在的位置,例如:

#!/usr/bin/env python3

而在用python2编写的ROS node则应用:

#!/usr/bin/env python
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/833450.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号