汇总ROS与Anaconda冲突的解决办法
现在大多数的Python应用程序采用的Python3版本,而且Anaconda目前使用的较多的是Python3版本,但是ROS很奇葩的使用的Python2。
法零:conda使用总结
这是最推荐的方法,也是最简单的方法。
**注意:安装conda的时候最后一步 是否初始化conda
的时候选择no
。
法一:使用Python2.7版本的anaconda,建立一个Python3.x版本的虚拟环境用于Python3的开发(这是我最推荐的方法),既保证了Python版本没冲突,也不会影响Python3的开发。
法二:使用anaconda建立ros的虚拟环境
conda create -n ros_env(or any other name which you like) python=2.7
#安装完成后,激活环境
conda activate ros_env
#如果import rospy报错,原因是由于rospkg没有安装
pip install -U rospkg
法三:每次显式的启用anaconda
这个方法也是ROS Wiki中记录的方法。
具体阅读ROS WIKI IDEs
具体的操作步骤就是:
1.如果安装anaconda的时候最后一步选择了初始化anaconda(init anaconda),这会在bashrc里面添加如下内容:
我们把
export PATH="/home/$USER/anaconda3/bin:$PATH"
这句注释掉。每次使用anaconda的时候,手动在terminal中再输入这句话。
2. 如果安装anaconda的时候没有初始化anaconda(init anaconda的选项默认是[no],所以不初始化的概率更高),那么每次使用anaconda,只需要在terminal中输入上一句指令就好。
参考How to make ROS and anaconda work on Ubuntu at the same time
法四:使用alias指令简化命令
这个方法在法二的基础上做了化简,把那句长长的指令用alias代替。
参考Ubuntu 18.04 ROS + Python3 + Anaconda+CUDA Environment Configuration
实现方法
1.完成法二的操作。
2.在.bashrc (.bashrc文件在/home目录下,可以直接使用 vi ~/.bashrc 来编辑) 中加入
alias condaenv="export PATH="/home/$USER/anaconda3/bin:$PATH""
(alias指令即是别名的意思)
想要运行anaconda,在terminal中输入condaenv
就可以了。