ROS melodic使用python3

ROS目前只支持Python2.7,但计划支持Python3。由于C++和C模块的兼容问题,需等到ROS的N版本。可以使用virtualenv创建Python3环境,编译安装所需软件包,未支持Python3的包会回退到Python2.7环境。以geometry2为例,介绍了创建环境和编译的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       当前ROS是只支持Python2.7的。Python3的支持在ROS的计划中,详细的可以看这里。简单说来就是要到2019年ROS的N版本才能完全支持Python3。

        首先要了解为什么ROS不能支持Python3对于纯的Python代码同时支持Python3和Python2.7是比较容易的,基本上ROS的代码也都是支持的。问题在于包含了C++或者C的那部分Python代码。Python2.7和Python3的c module代码相差很大。一次只能编译其中的一种版本。而且很多module没有做好Python3的支持。在Python3环境下也无法编译。这就是ROS无法支持Python3的原因。目前ROS的核心包都是支持用Python3从源码编译的。但是官方并没有发布Python3的软件包。所以想要使用的话要自己编译。下面介绍两种使用Python3的方法。

        使用Python3和Python2.7的混合环境
       原理:使用virtualenv创建一个Python3的环境。然后在这个环境中编译安装自己需要的软件包。在引用软件包的时候,如果没有对应的Python3的软件包,会自动的去Python2.7的环境里面找。这样很多软件包都是可以通用的。当然对于没有做好Python3支持的软件包也是没法用的。

下面以geometry2为例子

sudo apt-get install python3-dev
mkdir catkin_ws # 创建工作空间
cd catkin_ws
mkdir src
cd src 

下载geometry和geometry2的源代码

git clone https://github.com/ros/geometry
git clone https://github.com/ros/geometry2
cd ..

创建虚拟环境  (或者不创建虚拟环境直接进行安装)

virtualenv -p /usr/bin/python3 venv
source venv/bin/activate
pip install catkin_pkg pyyaml empy rospkg numpy
catkin_make
source devel/setup.bash

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值