1ROS和Anaconda的安装顺序
首先安装ROS,再安装Anaconda,注意二者顺序。
2安装ROS之后,对Anaconda进行安装
Anaconda下载地址:https://www.anaconda.com/download/
清华镜像:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
安装Anaconda
时直接使用bash
或者sh
安装,不用加sudo
,否则会出现后面一系列关于权限的限制问题。
bash Anaconda2-4.3.0-Linux-x86_64.sh
进入注册信息页面,输入yes
阅读注册信息,然后输入yes;查看文件即将安装的位置,按enter,即可安装
进入安装过程
安装完成后,收到加入环境变量的提示信息,输入no
设置手动激活conda的工作空间
sudo gedit ~/.bashrc
在文件最后添加
alias setconda='. ~/anaconda2/bin/activate'
(注意:ros环境激活的指令是可以放在bashrc里的,我们默认是首先激活ros的环境,需要用conda环境的时候,再手动激活conda的环境)
保存退出重新开一个终端,或者输入如下命令
source ~/.bashrc
执行一个ros2 topic list
,看看ros是否能正常工作
我们看一下python路径,执行一个which python
发现也是ubuntu系统python路径,满足ros的使用要求。
然后我们再激活一下conda的环境,我们在bashrc里面设置的激活指令是setconda,我们执行一下
setconda
可以看到前面的(base)标识已经开启,而且python也变为了conda的python,这样就可以正常使用conda了,我们执行个conda env list
也是没有问题的。
退出conda环境,回到系统环境
source deactivate
Anaconda的安装和虚拟环境的配置——基于使用ROS背景下的。_Boys_Wu的博客-CSDN博客_anaconda安装ros
Ubuntu18.04 安装 Anaconda3_梦Dancing的博客-CSDN博客_ubuntu安装anaconda
3关于 ROS和Anaconda的共存和共用问题的补充
- ROS和Anaconda的共存和共用问题,本质是环境问题。ros要求python2.7环境,系统环境即可,anaconda提供anaconda环境,可能是python2,也可能是python3,但都不是系统环境。如果这两个都想用,那么就注意管理好python环境。建议使用ros时系统环境,强化学习时conda一个环境。
- 为了解决不必要的冲突
- 先安装ros,再安装anaconda
- anaconda安装时,设为手动激活
- 安装anaconda2(默认conda环境使用python2,感觉有第2步,可以不需要这步,为保险还是做了)
- 当anaconda安装时设为自动激活,需要改为手动激活
source ~/.bashrc
注释掉对应conda init部分
文件末尾添加
alias setconda='. ~/anaconda2/bin/activate'
- 当anaconda安装时设为自动激活,需要单次退出anaconda
ROS编译工作空间报错,与conda环境冲突_直撞三千-CSDN博客
得注意的是此处我是直接打开终端的,并没有激活某个我所创建的conda环境,实则不然,请注意
当使用过conda,并且将之添加到.bashrc
中后,每次打开终端都已经进入conda名为"(base)
"的环境了,如上图最左侧所示,所以我们需要退出这个环境。
最便捷,单次有效
启动Terminal, 在username前会看到(base)
输入 conda deactivate
,(base)消失
- 通过设置alias关键字快速进入需要的python环境
anaconda3的python2和python3,系统的python2和python3
ubuntu16.04下安装&配置anaconda+tensorflow新手教程_JayShaun的博客-CSDN博客_ubuntu安装tensorflow教程
打开配置文件.bashrc,进行配置:
gedit ~/.bashrc
将下面三行添加到末尾,保存退出(注意:此处的路径为前面查找的Python路径,zxl改为自己的用户名)
# added by Anaconda3 installer
export PATH="/home/zxl/anaconda3/bin:$PATH"
export PATH="$PATH:$HOME/bin"
alias py27="/usr/bin/python2.7"
alias pyana3="/home/zxl/anaconda3/bin/python3"
使上面的配置生效:
source ~/.bashrc
使用方法:以作者的配置为例,具体要看你自己刚刚的配置
py27 对应系统自带的python2.7版本;
pyana3 对应anaconda中的python3版本
- ros环境移除
不建议用,不建议更改系统环境,太容易一发动全身,直接conda一个新环境就好
另外如果需要python3导入的包,就先把ros环境移除,待包导入后,再将ros关联的python2导入。示例如下面代码:
import sys
sys.path.remove('/opt/ros/kinetic/lib/python2.7/dist-packages') # in order to import cv2 under python3
import cv2
sys.path.append('/opt/ros/kinetic/lib/python2.7/dist-packages') # append back in order to import rospy
- anaconda可以建立Python2.7的环境,然后在那个环境中运行ROS
汇总Anaconda与ROS冲突解决方法 - LeonHuo - 博客园
十分不建议,需要安装很多插件
- 兼并两者的环境
Anaconda环境下使用ROS进行深度学习实例分割。_俄式追逐者的博客-CSDN博客
问题1:ImportError: /opt/ros/kinetic/lib/python2.7/dist-packages/cv2.so: undefined symbol: PyCObject_Type
遇到这样的问题,一般在是我们的电脑中存在ros时,并且在anaconda的虚拟环境下,使用python3的程序,其中import cv2这个包的时候,会报出这个错误。
问题2:重新用python3单独编译这个cv_bridge,再把它导入到我们的环境下,完成python3到ros的图像转换过程.
- 快捷激活特定环境
Anaconda的安装和虚拟环境的配置——基于使用ROS背景下的。_Boys_Wu的博客-CSDN博客_anaconda安装ros
在.bashrc
文件中注释掉Anaconda以下内容,这些内容是安装Anaconda时初始化环境产生的:
alias condapy37='. "/home/wsy/anaconda3/etc/profile.d/conda.sh" && conda activate py37'
这样的话,每次想运行虚拟空间,只用在终端中输入:condapy37
即可激活py37 虚拟空间。
- 一些认识
ros 是一个软件,大软件,操作系统,大的框架
conda 是一个环境,还是包管理工具
autoware 是一个软件,小软件,一个工作空间,仿真环境,基于ros的自动驾驶开源软件