ros 编译 Python 文件
来源:互联网 发布:手机证券交易软件 编辑:程序博客网 时间:2024/05/29 09:11
参考自:http://wiki.ros.org/rospy_tutorials/Tutorials/Makefile
系统:Ubuntu14.04 ros indigo
.py并不是可编译的脚本文件,但是为了适应ros统一的编译体系,使ros识别出你写的Python node,所以也加入了Python的编译流程,主要目的就是让ros和系统找到你的Python程序在哪。
1.在工作区间建立一个package
cd ~/catkin_ws/src
catkin_create_pkg my_pkg message_generation rospy
2.建立你的Python包
cd ~/catkin_ws/src/my_pkg
mkdir bin
mkdir src
mkdir src/tutorial_package
touch src/tutorial_package/__init__.pysrc目录用来放你的源码,也就是你自己写的各种封装好的包,是以.py结尾的文件
bin目录用来放你的执行文件,木有文件名后缀
在src/turorial_package目录下创建hello.py文件,
里面写:
def say(name): print('Hello ' + name)
在bin目录下创建hello文件,
里面写:
#! /usr/bin/env pythonimport tutorial_package.helloif __name__ == '__main__': tutorial_package.hello.say('my friend!')第一句很重要,用来表明这个可执行文件的解释器。
然后给这个文件加上可执行权限
chmod u+x bin/hello
最后还有一个问题,bin目录下的Python文件如何找到(import)src下的Python,一种方法是改Python路径,显然很麻烦。
另一种是在根目录下建立setup.py文件。
里面写:
## ! DO NOT MANUALLY INVOKE THIS setup.py, USE CATKIN INSTEADfrom distutils.core import setupfrom catkin_pkg.python_setup import generate_distutils_setup# fetch values from package.xmlsetup_args = generate_distutils_setup( packages=['tutorial_package'], package_dir={'': 'src'},)setup(**setup_args)
里面要改的就是package和package_dir
到此为止python方面的流程已经说完
3.修改CMakelists.txt
3.1 首先把里面
catkin_python_setup()
的注释去掉,保证在catkin_make时install Python包
3.2
install(PROGRAMS bin/hello DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION})找到这一句,去掉注释,在program后面加上你的可执行文件的路径名, 去掉destination注释。
4.编译
cd ~/catkin_ws
catkin_make -DCATKIN_WHITELIST_PACKAGES="my_pkg"
source ~/.bashrc
rosrun my_pkg hello
https://github.com/lightjiang/my_pkg.git
0 0
- ros 编译 Python 文件
- ROS与Python入门教程-制作Makefile文件
- rtabmap ros包编译
- QTcrateor 编译 ROS
- ROS编译:catkin简析
- QTcrateor 编译 ROS
- Qt-crateor 编译 ROS
- Qtcrateor 编译 ROS
- QTcreator 编译 ROS package
- ROS下编译slam_gmapping
- 编译 ROS slam_gmapping
- 创建、编译ros package
- 编译ROS时出错
- ROS学习--(五)编译ROS Package
- ROS Learning-006 beginner_Tutorials 编译ROS程序包
- ROS入门_1.7 编译ROS程序包
- ROS教程(四):编译ROS程序包
- ROS---用catkin创建ROS包、编译
- 微信小程序:分享一个百度地图微信小程序api
- maven仓库--私服(Nexus的配置使用)
- 【机房重构】sqlhelper
- 你真的了解如何将Nginx配置为Web服务器吗
- 打jar包
- ros 编译 Python 文件
- nginx多进程模型之热部署
- OpenCV3.2 编译extra & Python模块
- hexo-asset-image 图片不显示
- Excel上传到Sql数据库
- angularjs+ionic+cordova+Android studio的环境配置
- ARM的汇编指令
- Input 只能输入数字,数字和字母等的正则表达式
- thinkPHP实现对象存储oss,将图片上传到阿里云oss