方式一:在ROS版本1中使用python3,与python2兼容

事实上,只要在.py文件加上python3的shebang,rosrun的时候就会自动调用相应的解释器了:

#!/usr/bin/env python3

但是,在安装ros-kinetic-desktop-full的时候,也并没有安装python3相关的package,所以需要手动安装。

1. 创建 virtualenv 环境。

需要创建一个虚拟环境来当作Python3的环境,调用python3相关的内容时就调用这个虚拟环境,这样才能与ROS中的python2实现共存。

sudo pip install virtualenv

我在这使用的是Python3.7,指向系统已安装的python3也可以。

    # /usr/...为 python3 解释器所在的位置
    # rosenv 为创建的虚拟环境的文件名
$ virtualenv rosenv -p /usr/local/python3/bin/python3  
$ source rosenv/bin/activate
$ python -V

2. 安装相应的Package

需要安装 catkin-toolsrospkg
#没有创建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

如果使用 virtualenvrosrun 前记得 source virtualenv 就好了。

source ros_test/devel/setup.zsh

#如没有使用virtualenv,下一语句则跳过

$ source rosenv/bin/activate
$ rosrun package_Name pytest.py

Note

需要注意的是,即使使用的virtualenv中,python指向的是python3,但是只要不在.py文件中添加python3shebangrosrun还是会调用python2的。这样可以很方便地兼容原来Python2Package

你可能感兴趣的:(Ubuntu,系统相关)