python版本不对导致roscore出现问题

Python3.10

Python3.10

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

安装好ros之后启动roscore出现如下问题:

Traceback (most recent call last):
  File "/opt/ros/kinetic/bin/roscore", line 36, in <module>
    from rosmaster.master_api import NUM_WORKERS
  File "/opt/ros/kinetic/lib/python2.7/dist-packages/rosmaster/__init__.py", line 35, in <module>

  File "/opt/ros/kinetic/lib/python2.7/dist-packages/rosmaster/util.py", line 48, in <module>
    from defusedxml.xmlrpc import monkey_patch
ImportError: No module named 'defusedxml'

 原因是python的版本和ros不对口。盲猜可能是在sudo rosdep init这里采用鱼香ROS的方法,然后安装了python3导致的问题。不过有一说一,sudo rosdep init真的看运气,运气好了直接就能中,运气不好就用鱼香ros的方法吧。

  • 切记,以后不要随便把python自带的python-2.7变成python-3.5之类的其他版本,后面可能会带来意想不到的问题。当然可能有一些其他高级的方法可以让python-3.5也能不报错,对于初学者还是就用python-2.7。那么对于上面roscore出现的问题,按照我下面的方式进行解决即可。

 使用update-alternatives来为整个系统更改python默认版本

整个流程如下:

// 1.列出python版本号
sudo update-alternatives --list python

如果出现如下错误:

说明python版本不能被update-alternatives识别,就需要执行如下语句:

ls -l /usr/bin/python /usr/bin/python3
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.5 2
sudo update-alternatives --list python

 注意:这里第二第三行,python2.7和python3.5是根据前面ls -l /usr/bin/python /usr/bin/python3输出的python版本。如果输出是3.6,就要改成python3.6

// 2. 配置默认解释器
sudo update-alternatives --config python

选择python2.7,我这里输入的编号是1

// 3.验证在终端直接输入python
python
// 4.最后重启roscore看看是否成功
roscore

 如果出现如下的情况就是成功了。

 
测试小乌龟

  • 重新打开一个新终端,输入:
rosrun turtlesim turtlesim_node
  • 再打开一个新终端,输入:
rosrun turtlesim turtle_teleop_key

出现小乌龟就是成功了。

您可能感兴趣的与本文相关的镜像

Python3.10

Python3.10

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

啵啵鱼爱吃小猫咪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值