ROS所使用的python版本为2.7,但是现在越来越多的人做深度学习+机器人方面的研究,而目前搭建神经网络的库许多用的是python3,所以让不同的python版本兼容是一个问题。
经过查阅资料,通过anaconda建立虚拟环境,将python3的程序都放到虚拟环境中,并在虚拟环境中安装ROS的一些包,实现ROS和python3的共存。过程如下:
1. ROS安装,这部分就不说了,网上资料很多,就正常安装。
安装好后,打开一个terminal,输入python,可以看到python版本是:Python 2.7.6.
2. Anaconda建立虚拟环境
2.1. 网上下载anaconnda到Downloads目录,然后
$ cd Downloads
$ sudo bash Anaconda3XXXXXX.sh
安装anaconda,但是不要选择将路径添加到环境变量。等下我们手动添加。
此处可以参考这里:使用anaconda在ubuntu16.04下安装TensorFlow-GPU,同时保留原本的ROS环境。
2.2. 暂时添加anaconda环境变量
$ sudo gedit ~/.bashrc
在文件末尾添加:
export PATH=/home/XXX(你自己的ubuntu名字)/anaconda3/bin:$PATH
此时重新打开terminal,输入python,版本为:Python3.6.4。
但是此时ROS中的一些包已经不能用了,因为python版本已经变了。
我们参考上述链接中的方法解决一波。
2.3. 先建一个Python3的虚拟环境
$ conda create -n learninglab python=3.6
2.4. 参考链接进一步修改
$ sudo gedit ~/.bashrc
在文件中添加
alias condapy3='. /home/tom/anaconda3/etc/profile.d/conda.sh && conda activate learninglab'
屏蔽掉
#export PATH=/home/XXX/anaconda3/bin:$PATH
新开一个terminal,输入condapy3,此时进入并激活learninglab的虚拟环境,在输入python,可以看到版本为3.6.
再开一个terminal,输入python,版本还是之前ROS用到的Python2.7.6.。
实际环境和虚拟环境python版本进行了隔离。
2.5. 虚拟环境安装ROS需要的包
terminal输入condapy3,进入learninglab,然后
(learninglab)$ pip install catkin-tools
(learninglab)$ pip install rospkg
2.6. 虚拟环境安装Pytorch
linux-conda-Python3.6-cpu
(learninglab)$ conda install pytorch-cpu torchvision-cpu -c pytorch
至此完成环境搭建。
conda清理
conda clean -p
conda clean -t
以后深度学习方面的开发在虚拟环境中做,通过虚拟环境中的ROS包和实际环境中的ROS包通信,达到python2.7和python3.6的平衡。