在ROS中使用Python3
Use Python3 in ROS.
以下内容在Ubuntu 16.04 x64和ROS kinetic中测试通过
事实上,只要在.py文件加上python3的shebang,rosrun的时候就会自动调用相应的解释器了:
#!/usr/bin/env python3
但是,在安装ros-kinetic-desktop-full
的时候,也并没有安装python3相关的package,所以需要手动安装。
1. 创建virtualenv环境(非必须)。
这一步不是必要的,在这只是为了保险起见。
sudo pip install virtualenv
# 我在这使用的是Python3.6rc2,指向系统已安装的python3也可以。
virtualenv rosenv -p /opt/python36rc/bin/python3
source rosenv/bin/activate
python -V
# Python 3.6.0rc2
2. 安装相应的Package
需要安装catkin-tools
和rospkg
。
# 没有创建virtualenv的话,注意需要使用pip3
pip install catkin-tools
pip install rospkg
3. 按正常方式创建ROS Packgae
创建Packge和Node的时候,无需source virtualenv。
但是,记得要在python node的文件头部加上shebang,否则rosrun仍会调用python2:
#!/usr/bin/env python3
4. rosrun
如果使用virtualenv,rosrun
前记得source virtualenv就好了。
source ros_test/devel/setup.zsh
# 如没有使用virtualenv,下一语句则跳过
source rosenv/bin/activate
rosrun py3test pytest.py
Note
需要注意的是,即使使用的virtualenv中,python指向的是python3,但是只要不在.py文件中添加python3的shebang,rosrun
还是会调用python2的。这样可以很方便地兼容原来Python2的Package。
在ROS中使用Python3的更多相关文章
- 在注册表中无Python3.5安装路径的情况下安装pywin32-
当安装pywin32出现Python Version 3.5 required which was not found in the registry的时候表面注册表中没有Python3.5的安装路径 ...
- 将ROS中的/sensor_msgs/NavSatFix数据导入google earth显示轨迹
将ros中的gps_msg数据导入google earth显示轨迹 [TOC] 1. 获取GPS数据 将ros中发布的gps topic输出到文本中 rostopic echo -p /gpsData ...
- linux中安装Python3.x
首先了解几句Linux命令是必须的.例如 ls, vi, wget, rm, mv, cd, su, sudo, chmod, tar等等一些常用的语句命令是有必要知道它的用法的. 安装Python3 ...
- PTA中提交Python3程序的一些套路
0. FAQ 0.1 提交后提示"答案错误"或者"格式错误" PTA检查答案正确与否是通过字符串匹配实现的.所以可能有以下几种原因: 格式错误:程序的输出要与题 ...
- ROS_Kinetic_27 在ROS中使用Cartographer进行SLAM
ROS_Kinetic_27 在ROS中使用Cartographer进行SLAM Cartographer是谷歌新開源的通用的2D和3D定位與構圖同步的SLAM工具,並提供ROS接口. 论文Real- ...
- ROS_Kinetic_07 ROS中机器人三维物理引擎高保真仿真利器gazebo 7.0
ROS_Kinetic_07 ROS中机器人三维物理引擎高保真仿真利器gazebo 7.0 ROS kinetic中的gazebo版本是7.0,有很多新的特性. 首先,启动gazebo: ~$ gaz ...
- 在 ubuntu 中安装 python3.5、 tornado、 pymysql
一.在 ubuntu 中安装 python3.5 1.首先,在系统中是自带python2.7的.不要卸载,因为一些系统的东西是需要这个的.python2.7和python3.5是可以共存的. 命令如下 ...
- Linux中安装python3.6和第三方库
Linux中安装python3.6和第三方库 如果本机安装了python2,尽量不要管他,使用python3运行python脚本就好,因为可能有程序依赖目前的python2环境,比如yum!!!!! ...
- ROS中的CMakeLists.txt
在ROS的编程过程中,如果CMakeLists.txt如果写不好,编译就很难成功.如果看不懂CMakeLists.txt那么很多错误你也不知道时什么回事.所以深入了解它是很有必要的.现在我们就来看看它 ...
随机推荐
- MVC5+EF6 入门完整教程13 -- 动态生成多级菜单
稍微有一定复杂性的系统,多级菜单都是一个必备组件. 本篇专题讲述如何生成动态多级菜单的通用做法. 我们不用任何第三方的组件,完全自己构建灵活通用的多级菜单. 需要达成的效果:容易复用,可以根据mode ...
- win10系统iis下部署搭建https (ssl/tls)本地测试环境
有时想要把公司的某些XX项目部署成https站点,是为了在传输层加密传输,防止他人嗅探站点重要数据信息,平常我们使用的http方式都是明文方式传输的很不安全,容易被他人窃取.而有些时候要在本地搭建ht ...
- 背水一战 Windows 10 (3) - UI: 窗口全屏, 窗口尺寸
[源码下载] 背水一战 Windows 10 (3) - UI: 窗口全屏, 窗口尺寸 作者:webabcd 介绍背水一战 Windows 10 之 UI 窗口全屏 窗口尺寸 示例1.窗口全屏UI/F ...
- 【Java每日一题】20161115
package Nov2016; import java.io.Serializable; public class Ques1115 implements Serializable{ private ...
- Python中的编码
http://liguangming.com/how-to-use-utf-8-with-python http://www.lijiejie.com/python-sys-setdefaultenc ...
- FileIputeStream用于读写文件,并且用字节的方式表示出来
package com.Java; import java.io.FileInputStream; import java.io.FileNotFoundException; import java. ...
- Elasticsearch5.0 BreakChange摘要
Lucene版本 6.2.1 常用API变化重点关注 Java api 1 client create方式变更: 2 count api removed; 3 suggest api removed; ...
- ejs-mate
安装 npm install ejs-mate --save 模板方法: 1.layout 2.partial 3.block
- java内存模型-基础
基础 并发编程模型的分类 在并发编程中,我们需要处理两个关键问题:线程之间如何通信及线程之间如何同步(这里的线程是指并发执行的活动实体).通信是指线程之间以何种机制来交换信息.在命令式编程中,线程之间 ...
- jQuery10种不同动画效果的响应式全屏遮罩层
遮罩层有很多今天介绍这个jQuery10种不同动画效果的响应式全屏遮罩层 效果预览 下载地址 实例代码 <div class="container"> <head ...