解决Anaconda与ROS冲突解决方法

解决Anaconda与ROS冲突解决方法

汇总一下在网上找到的Anaconda与ROS冲突解决方法

anaconda和ros的安装就不介绍了。

  1. 创建ros虚拟环境

安装完成后,在.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 0 ]; 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.3 (default, Mar 27 2019, 22:11:17) 
[GCC 7.3.0] :: 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.16 |Anaconda, Inc.| (default, Aug 22 2019, 16:00:36) 
[GCC 7.3.0] 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以上的版本会有问题。

  1. 在ROS的github上的方法

网址:https://github.com/ros/ros/issues/149
这个方法很简单,屏蔽掉.bashrc中关于anaconda的设置,每次使用anaconda时,在终端中输入

$ export PATH="/home/"user"/anaconda3/bin:$PATH"

然后就可以使用anaconda。

$ anaconda-navigator
  1. 在medium上找到的方法

网址:https://medium.com/@zuxinl/ubuntu-18-04-ros-python3-anaconda-cuda-environment-configuration-cb8c8e42c68d

该方法与上面的方法效果完全一样,屏蔽掉.bashrc中关于anaconda的设置,在.bashrc中加入

$ alias condaenv=”export PATH=”/home/"user"/anaconda3/bin:$PATH””

想要运行anaconda,就直接运行

$ condaenv
上一篇:科研向 ROS 学习笔记 (仿真验证)


下一篇:乘风破浪,遇见未来元宇宙(Metaverse)之除了Meta之外不可忽视的硬核玩家,索尼PlayStation VR2虚拟现实头显