在Ubuntu下安装ROS之后,再安装Anaconda,Anaconda的base环境下的python将被作为默认python进行调用。当用户需要运行ROS程序的时候,这种默认设置会带来麻烦。当然,用户可以选择用conda建立虚拟环境,在虚拟环境下安装ROS的运行库来解决这个问题,但是这样做费时费力,还浪费硬盘空间。
比较简单的解决方法去掉.bashrc文件中anaconda默认的环境设置,用一个alias替代。默认情况下使用ROS的Python环境,当需要使用Anaconda的时候,执行这个alias,使用Anaconda的Python环境。
输入:
sudo gedit ~/.bashrc
在文件末尾可以看到conda init添加的设置:
# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/home/<username>/anaconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__conda_setup"
else
if [ -f "/home/<username>/anaconda3/etc/profile.d/conda.sh" ]; then
. "/home/<username>/anaconda3/etc/profile.d/conda.sh"
else
export PATH="/home/<username>/anaconda3/bin:$PATH"
fi
fi
unset __conda_setup
# <<< conda initialize <<<
把这一段设置注释掉,然后在文件末尾添加alias:
alias condaenv="export PATH=\"/home/<username>/anaconda3/bin:$PATH\"
. /home/<username>/anaconda3/etc/profile.d/conda.sh"
然后source这个文件:
source ~/.bashrc
这样在默认情况下,终端就会使用ROS的Python环境。需要在特定终端下使用Anaconda的时候,再输入condaenv,就可以使用Anaconda的Python环境。