基于上一篇博客实现在python3下往topic中发布消息
一、修改脚本用python3运行
把#!/usr/bin/python2.7
修改为#!/usr/bin/python3
二、通过rosrun命令执行该脚本
直接运行rosrun
命令他会报错。
1.提示没有rospkg这个包
- 因为在安装ros的时候,rospkg这个包是安装在python2.7的目录下的。用
sudo find / -name rospkg
查找rospkg,可以看到他的路径是/usr/lib/python2.7/dist-packages/rospkg。
2.在安装python3-rospkg
- 所以我们需要在python3的目录下安装一个python3版本的rospkg。
sudo apt-get install python3-rospkg
- 安装完之后,重新启动roscore会提示:
3.遇到的一些错误(可以直接跳过)
- 按照提示进行安装上述包一直到到最后要安装catkin。
然后提示需要安装python-catkin-pkg,但是这个包我已经安装了,并且是最新版本。
- (这一步并没有解决问题,可以直接跳到下一步) 参考这篇博客https://blog.csdn.net/WillWinston/article/details/80714334,我们需要从GitHub上下载catkin源码并编译。
sudo apt-get install git
cd ~ && git clone https://github.com/ros/catkin
- 安装catkin依赖的包
sudo apt-get install cmake python-catkin-pkg python-empy python-nose python-setuptools libgtest-dev build-essential
cd catkin
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release ../
make
sudo make install
执行完之后还是上面的问题。
4.成功解决
参考https://blog.csdn.net/tom17/article/details/107748686
6. 最后解决:sudo apt-get install ros-melodic-desktop
重新执行一下这个命令。
然后执行:
roscore
rosrun my_pkg my_publisher.py
(自己的功能包名和脚本名)- 成功在python3下往topic中发布消息。