Ubuntu安装完Anaconda和ROS2
Ubuntu安装完Anaconda后,安装ROS2,进行编译报错(colcon build)解决方案
当我们用Ubuntu安装完Anaconda后,如果有学习ros2的需要,此时二者会发生冲突,ros2会在Anaconda配置环境下运行,出现错误就难以避免,作者在Ubuntu22.04上反复实验,最终解决了该问题。下面将方法讲解如下。
一、解决ROS2无法编译问题
打开主目录下的**.bashrc**文件,该文件是开机启动文件,也是一个隐藏文件,如果无法查看到,利用快捷键【Ctrl+H】显示。打开后,将Anaconda的初始化命令注释掉。如下:
# # >>> conda initialize >>>
# # !! Contents within this block are managed by 'conda init' !!
# __conda_setup="$('/home/XXX/anaconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
# if [ $? -eq 0 ]; then
# eval "$__conda_setup"
# else
# if [ -f "/home/XXX/anaconda3/etc/profile.d/conda.sh" ]; then
# . "/home/XXX/anaconda3/etc/profile.d/conda.sh"
# else
# export PATH="/home/XXX/anaconda3/bin:$PATH"
# fi
# fi
# unset __conda_setup
## <<< conda initialize <<<
Anaconda的路径无需注释,否则conda命令无法运行。其路径信息如下
export PATH=/home/XXX/anaconda3/bin:$PATH
二、解决Anaconda无法运行问题
将上述的注释的代码剪切出来,在主目录下新建一个文件,例如:.condainit。用文本编辑器将上面的内容粘贴在下面:
# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/home/XXX/anaconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__conda_setup"
else
if [ -f "/home/XXX/anaconda3/etc/profile.d/conda.sh" ]; then
. "/home/XXX/anaconda3/etc/profile.d/conda.sh"
else
export PATH="/home/XXX/anaconda3/bin:$PATH"
fi
fi
unset __conda_setup
# <<< conda initialize <<<
如果需要运行Anaconda,运行指令:
source .condainit
初始化后,终端会出现(base)字样,此时,可以激活Anaconda下创建的环境。例如
XXX@dls-tm:~/dev_ws$ python
Python 3.9.13 (main, Aug 25 2022, 23:26:10)
[GCC 11.2.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
KeyboardInterrupt
>>>
XXX@dls-tm:~$ source .condainit
(base) XXX@dls-tm:~$
(base) XXX@dls-tm:~$ conda activate pytorch
(pytorch) XXX@dls-tm:~$
此时可以在该环境下进行Python相关操作,同时,新打开的终端也可以进行ros2的开发编译。