汇总一下在网上找到的Anaconda与ROS冲突解决方法,如果还有其他人找到其他方法,欢迎留言。
anaconda和ros的安装就不介绍了。
1. 在某视频网站上一个印度小哥提出的方法
安装完成后,在.bashrc/会出现:
# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/home/“user”/anaconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq ]; then
eval "$__conda_setup"
else
if [ -f "/home/"user"/anaconda3/etc/profile.d/conda.sh" ]; then
. "/home/"user"/anaconda3/etc/profile.d/conda.sh"
else
export PATH="/home/"user"/anaconda3/bin:$PATH"
fi
fi
unset __conda_setup
# <<< conda initialize <<<
这时,你输入在终端输入
$ python
会看到版本号信息:
Python 3.7. (default, Mar , ::)
[GCC 7.3.] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
明显不是ROS需要的Python版本,ROS的Python版本为2.7。印度小哥的思路是anaconda可以建立Python2.7的环境,然后在那个环境中运行ROS。
$ conda create -n ros_env python=2.7 anaconda
建立名为ros_env的环境之后,需要安装许多插件,安装完成后,加载环境:
source activate ros_env
这时,在查看python的版本变为:
Python 2.7. |Anaconda, Inc.| (default, Aug , ::)
[GCC 7.3.] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
这时import rospy会报错,原因是由于rospkg没有安装,在ros_env的环境下安装rospkg
$ pip install -U rospkg
安装成功后,import rospy 以及 import rospkg都没有问题了。
总结:这个方法很好用,就是在使用ros之前需要进入ros_env环境,相对比较方便。当然,也可以将source activate ros_env加入到.bashrc,这样做不推荐,因为这样做默认的环境变为python2.7的版本,如果想要python3以上的版本会有问题。
2. 在ROS的github上的方法
网址:https://github.com/ros/ros/issues/149
这个方法很简单,屏蔽掉.bashrc中关于anaconda的设置,每次使用anaconda时,在终端中输入
$ export PATH="/home/"user"/anaconda3/bin:$PATH"
然后就可以使用anaconda。
$ anaconda-navigator
3. 在medium上找到的方法
该方法与上面的方法效果完全一样,屏蔽掉.bashrc中关于anaconda的设置,在.bashrc中加入
$ alias condaenv=”export PATH=”/home/"user"/anaconda3/bin:$PATH””
想要运行anaconda,就直接运行
$ condaenv
如果还有更好的方法,希望大家留言。