ROS Melodic 使用Anaconda环境python3

这篇博客介绍了如何在Linux环境下,利用Anaconda创建的Python3虚拟环境来构建支持Python3的ROS Melodic。过程中遇到的三个主要问题包括:1) 不需要额外安装Python3,而是直接在虚拟环境中使用pip3安装所需包;2) 由于资源被屏蔽,需要修改rosdistro的配置文件以从gitee备份源获取资源;3) 使用rosinstall_generator时遇到错误,需去除--tar选项并手动处理某些模块的下载失败。此外,还提到了此方法与直接使用sudo apt-get install ros-melodic-desktop-full的区别,并解决了因混合使用Python2和Python3导致的错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

核心基于该文章:Building ROS Melodic with Python3 support

前提

本文基于上述的核心文章,提出遇到的问题,并提出解决方案,仅供参考。整体流程请按推荐文章走。
1.你已经拥有一个在linux环境下的anaconda虚拟环境
2.使用python3
3.默认python 和 python3 设置为anaconda虚拟环境下的python

第一个问题

在这里插入图片描述
此处教程上会安装一个 python3,且默认位置在/usr/local/lib/python3.6 一定要注意,如果想使用Ananconda的虚拟环境,此处无需下载python3,将第二条指令改为:

sudo apt install -y build-essential

在这里插入图片描述
注意: 此处的pip3安装,一定不要加上sudo ,否则使用的是系统内置下载的python,如果上一步下载了python,则会把这些库装在/usr/local/lib/python3.6/dist-packages,并不在我们所想的anaconda虚拟环境中。所以需要先切换到我们对应的环境下,再使用pip安装。

source activate 你的虚拟环境名
pip3 install rosdep rospkg rosinstall_generator rosinstall wstool vcstools catkin_tools catkin_pkg

第二问题

在这里插入图片描述
这里普遍无法成功,资源都被屏蔽了。还好有人将资源备份到了gitee上,我们通过更改ros的配置文件,来成功初始化。
首先到/anaconda3/lib/python3.7/site-packages里寻找

./rosdistro/__init__.py
./rosdep2/gbpdistro_support.py
./rosdep2/sources_list.py 
./rosdep2/rep3.py

然后在每个文件内搜索raw.githubusercontent.com/ros/rosdistro/master,将其替换成gitee.com/zhao-xuzuo/rosdistro/raw/master,每个文件都只有一个URL需要替换。
然后再重新执行,即可成功

sudo rosdep init
rosdep update

第三问题

在这里插入图片描述在执行此处第一步时,一直报错,查询后:
rosinstall_generator desktop_full --rosdistro melodic --deps --tar > melodic-desktop-full.rosinstall
去掉 --tar,改为
rosinstall_generator desktop_full --rosdistro melodic --deps > melodic-desktop-full.rosinstall
会直接下载,更容易成功。
如果有下载失败的,如下:

Exception caught during install: Error processing 'filters' : [filters] Checkout of https://github.com/ros-gbp/filters-release/archive/release/melodic/filters/1.8.2-1.tar.gz version filters-release-release-melodic-filters-1.8.2-1 into /home/meroke/ros_catkin_ws/src/filters failed.
Error processing 'rqt_py_console' : [rqt_py_console] Checkout of https://github.com/ros-gbp/rqt_py_console-release/archive/release/melodic/rqt_py_console/0.4.8-0.tar.gz version

复制报错模块的下载网址如
https://github.com/ros-gbp/filters-release/archive/release/melodic/filters/1.8.2-1.tar.gz
复制到网页,点击下载,然后将模块解压后放入src文件夹内。
再次运行指令wstool update -j4 -t src 直至无错误。

注:此处说明这里安装的ros和使用 sudo apt-get install ros-melodic-desktop-full的区别
本方法:
ros的包都在~/ros_catkin_ws/install/include lib share三个文件夹中
使用apt-get install:
ros的包都在/opt/ros/melodic/include lib share三个文件夹中
如有独立的模块包如gmapping|、map_server等,使用apt install ros-melodic-xxx,会下载到/opt/ros/melodic/include lib share中,此处将新内容复制到~/ros_catkin_ws/install/对应的位置即可。
警告/opt/ros/melodic/是python2版本的,如果使用sudo install ros-melodic-xxx,再将包复制到~/ros_catkin_ws/install/内,由于部分库不支持python3,会导致运行出错,如gazebo模型加载失败。如果发生此错误,只需回到~/ros_catkin_ws/ ,运行catkin build

在这里插入图片描述

$ sudo ./install_skip `rosdep check --from-paths src --ignore-src | grep python | sed -e "s/^apt\t//g" | sed -z "s/\n/ /g" | sed -e "s/python/python3/g"`

在执行这一步时,遇到了提示找不到 python33-rosdep等一些列包的问题,很明显,我这里显示多了个3,于是我去掉命令中最后的3,即可成功。
但这可能是由于我将默认python和python3都设置成了虚拟环境中的python3的问题。如果原指令没问题,则继续使用原指令。

后续运行非常顺利。

参考资料:安装ROS

http://www.autolabor.com.cn/book/ROSTutorials/chapter1/12-roskai-fa-gong-ju-an-zhuang/124-an-zhuang-ros.html

<think>好的,我需要帮助用户解决如何在ROS Melodic中配置或安装Anaconda的问题。根据用户提供的引用内容,我需要整理相关信息,并确保回答结构清晰、步骤正确。 首先,用户提到了四个引用,其中涉及AnacondaROS Melodic的兼容性问题,特别是Python版本的冲突。ROS Melodic默认使用Python 2.7,而Anaconda通常使用Python 3.x,这可能导致环境冲突。 接下来,我需要参考用户提供的引用内容,提取关键步骤: 1. 引用[1]提到要确保默认Python环境Anaconda,可能需要调整环境变量。 2. 引用[2]指出在调用OpenCV时需要注释掉ROS的source行,或者在代码中移除ROSPython路径,避免冲突。 3. 引用[3]建议使用虚拟环境,并找到Python3解释器的路径。 4. 引用[4]提到安装时不需要额外安装Python3,直接使用Anaconda环境。 然后,我需要将这些信息整合成具体的步骤,可能包括安装Anaconda、配置环境变量、处理ROSAnaconda的路径冲突、使用虚拟环境等。 还需要注意,用户可能遇到的问题,比如路径冲突导致ROS命令无法使用,或者Python包导入错误,需要提供解决方案,例如临时恢复ROS环境的方法。 最后,生成相关问题,帮助用户进一步了解相关主题,比如虚拟环境管理、Python3支持、OpenCV冲突解决等。 确保回答中使用正确的LaTeX格式,行内公式用$...$,独立公式用$$...$$,但在这个问题中可能数学公式较少,但如果有的话需要正确应用。同时,引用标识要自然添加在相关段落末尾。</think>### ROS MelodicAnaconda联合配置方法 ROS Melodic默认依赖Python 2.7,而Anaconda通常使用Python 3.x,二者共存需解决环境冲突。以下是关键步骤: #### 1. **安装与基础配置** - 安装Anaconda后,确保默认Python环境指向Anaconda: ```bash echo &#39;export PATH="/home/<user>/anaconda3/bin:$PATH"&#39; >> ~/.bashrc source ~/.bashrc ``` 通过`which python`验证是否输出Anaconda路径(如`/home/user/anaconda3/bin/python`)[^1]。 #### 2. **处理ROS环境冲突** - **临时禁用ROS Python路径**: 在运行Python脚本前移除ROSPython 2.7路径: ```python import sys sys.path.remove(&#39;/opt/ros/melodic/lib/python2.7/dist-packages&#39;) ``` 或在终端中临时修改环境变量: ```bash export PYTHONPATH="" # 清空ROSPython路径 ``` 此方法适用于需要调用Anaconda中OpenCV等库的场景[^2]。 - **永久配置(可选)**: 注释掉`~/.bashrc`中的ROS初始化命令: ```bash # source /opt/ros/melodic/setup.bash ``` 需手动执行`source /opt/ros/melodic/setup.bash`以启用ROS命令。 #### 3. **使用虚拟环境(推荐)** - 创建独立虚拟环境避免全局冲突: ```bash conda create -n ros_py3 python=3.7 conda activate ros_py3 ``` 通过`which python3`确认虚拟环境路径[^3]。 #### 4. **编译ROS包时的Python兼容** - 若需编译依赖Python3ROS包(如`cv_bridge`),需指定Python解释器路径: ```bash catkin_make -DPYTHON_EXECUTABLE=/home/<user>/anaconda3/envs/ros_py3/bin/python ``` 注意:部分ROS包(如`rospy`)仍依赖Python 2.7,需谨慎处理[^4]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值