相信大家刚开始在使用ubuntu系统,都会出现环境冲突的情况,例如我们在刚开始启动终端时,如果安装了conda,就会默认进入base环境,这会导致我们后续安装ros2依赖库的时候一直报错,无法安装。
在后续使用pycharm时,因为害怕出现上述情况,打算直接在pycharm使用ros2的环境,但是接下来就会出现版本不兼容问题,例如numpy和cv2,如果我们擅自去升级人ros2里面依赖库的版本的话,这可能会导致后续在使用ros2时出现报错,有点得不偿失,所以我们还是需要使用到conda环境,接下来我将详细说明如何让这两种环境不冲突。
一、下载安装conda
安装包路径:ZTL_Base_AI_SDK_20240907_1446/rknn_model_base_env/Anaconda3-2024.06-1-Linux -x86_64.sh
1.cd到Anaconda3的安装路径下
2.+x 可执行权限,指令为:chmod +x Anaconda3-2024.06-1-Linux-x86_64.sh
3.执行权限后,开始运行安装,指令为:./Anaconda3-2024.06-1-Linux-x86_64.sh
4.对Anaconda进行初始化。编辑.bashrc文件,指令为:nano ~/.bashrc,进入文件,在最下方写入:. /home/zc/anaconda3/etc/profile.d/conda.sh conda activate base。保存并退出(Ctrl+O,然后按Enter保存;Ctrl+X退出)
5.应用对该文件的修改,指令为:source ~/.bashrc
二、退出base环境
由于下载了conda以后,系统就会默认进入base环境,这其实就是默认进入了conda,类似于下图
那么我们需要先退出这个环境。执行下列指令(这个指令只在当前终端有效,如果打开新的终端还是会默认进入base环境)
conda deactivate
下列指令为永久生效的指令,这样的话下次就不会进入base环境
conda config --set auto_activate_base false
我们可以通过python的位置,来检查指令是否生效
从图中可以看出,在进入base环境后,会指向conda里面的python。如果退出base环境就会指向系统的python。这就说明我们设置成功了。
三、修改.bashrc文件
可以选择在文档编辑器打开bashrc文件,这样方便查找和修改
gedit ~/.bashrc &
在文档的后面加上下列指令
#export PATH="$HOME/anaconda3/bin:$PATH"
# >>> Conda 初始化(不自动激活 base)
if [ -f "$HOME/anaconda3/etc/profile.d/conda.sh" ]; then
source "$HOME/anaconda3/etc/profile.d/conda.sh"
fi
# >>> Conda 手动激活(使用别名)
alias use_conda="conda activate && echo '[Conda] 当前 Python 路径:' \$(which python)"
# >>> ROS Noetic 环境初始化(使用系统 Python)
alias use_ros="source /opt/ros/noetic/setup.bash && echo '[ROS] 已激活:使用系统 Python:' \$(which python3)"
# === 取消自动激活 Conda base(确保配置生效)
conda config --set auto_activate_base false
如果文件中出现第一行的指令尽量将其注释掉,这可能会导致与ros2环境冲突。最后一行是前面我们讲过的取消自动进入base环境。
修改好了以后,点击保存,然后进入终端执行
source ~/.bashrc
这样我们就可以同时全部修改完成了。
输入下列指令即可进入base环境,在后面加入创建环境的名称即可进入对应环境
conda activate
输入下列指令即可退出
conda deactivate